精品文档---下载后可任意编辑单链表的查找,程序如下:#include<>#include<>#include<>typedef struct node { int data; struct node *next; }LinkList; LinkList *CreateList(int length) { LinkList *head,*p,*q; head=(LinkList*)malloc(sizeof(node)); head->next =NULL; q=head; printf("******请输入链表中的%d 个元素:\n",length); for(int i=1;i<=length;i++) { p=(LinkList*)malloc (sizeof(node)); q->next=p; p->next=NULL; q=q->next ; scanf("%d",&p->data); } return head;}void select_insert(LinkList *head) { int min=0; int tmp=0; 精品文档---下载后可任意编辑 LinkList *p,*q,*M; p=q=M=head; while(p->next!=NULL) { M=q=p->next; min=q->data; while(q!=NULL) { if(q->datadata; } q=q->next; } if(p->next!=M) { tmp=p->next->data; p->next->data=M->data; M->data=tmp; } p=p->next; } } locate(LinkList *head,int key) { int k=1; LinkList *p; p=head->next; while((p!=NULL) && (p->data!=key))精品文档---下载后可任意编辑 { p=p->next; k++; } if(p==NULL) return NULL; else return k;}void DisplayList(LinkList *L) { LinkList *p; p=L->next; while(p) { printf("%d ",p->data ); p=p->next; } printf("\n");}void main(){ int len,num,n; LinkList *L; printf("******请输入你要创建链表的长度:"); scanf("%d",&len); L=CreateList(len); printf("******要查找的数为:"); scanf("%d",&num); n=locate(L,num); printf("*******要查找的数的在链表的第%d 个位置.",n); printf("\n*******排序后结果为:\n");精品文档---下载后可任意编辑 select_insert(L); DisplayList(L);}执行结果如下: