1、/*时间:2010 年 8 月 28 日 17:19:49*功能:C 语言实现单链表的建立、输入、插入、删除、查找元素并返回位置*/#include“stdio.h“#include“stdlib.h“#include“malloc.h“/*假设输入的数据为 3 个-我比较好操作-_-*/#define size 3typedef struct Listint num;int shuju;struct List *next;list;/*头结点*/list *setup_list(list *head)printf(“setup_listn“);head=malloc(sizeof(list)
2、;if(head=NULL)printf(“setup failn“);getch();exit(0);head-num=NULL;head-shuju=NULL;head-next=NULL;printf(“setup successn“);return head;/*输入数据*/void input(list *head,int num)list *q=NULL;list *s=NULL;s=malloc(sizeof(list);s-next=NULL;printf(“input the %d data:“,num);scanf(“%d“,s-num=num;q=head;while(q
3、-next!=NULL)q=q-next;q-next=s;/*浏览*/void browse(list *head)list *q=NULL;q=head-next;while(q!=NULL)printf(“num:%dn“,q-num);printf(“shuju:%dn“,q-shuju);q=q-next;/*插入 num 值有主函数控制*/void insert_list(list *head,int num)list *q=NULL;list *p=NULL;list *s=NULL;q=head;p=q-next;while(p!=NULLp=q-next;s=malloc(s
4、izeof(list);printf(“input shuju“);scanf(“%d“,s-num=num;q-next=s;s-next=p;/*整理 num 后面的数后推*/while(p!=NULL)num+;p-num=num;p=p-next;void delete_list(list *head,int num)list *q=NULL;list *p=NULL;q=head;p=q-next;while(p!=NULLp=q-next;q-next=p-next;free(p);printf(“num %dn“,num);p=q-next;while(p!=NULL)p-num
5、=num;num+;p=p-next;/*查找元素 并返回位置*/list *find_list(list *head,int data)list *q=NULL;list *p=NULL;q=head;p=q-next;while(p!=NULLp=q-next;printf(“num :%d data : %dn“,p-num,p-shuju);return p;exit_list(list *head)printf(“exit ok“);free(head);getch();main()int middle=0;int num=0;int i=0;list *head=NULL;list
6、 *s=NULL;/*接收指针 case3 的指针接收*/head=setup_list(head);printf(“head-next %dn“,head-next);printf(“head-num %dn“,head-num);printf(“head-shuju %n“,head-shuju);getch();for(i=0;isize;i+)input(head,num);num+;browse(head);*/*1 插入 2 删除 3 查找 4 浏览 5 退出*/*for(;) printf(“input middle:“);scanf(“%d“,switch(middle)cas
7、e 1:printf(“insert ninput num:“);scanf(“%d“,insert_list(head,num);break;case 2:printf(“delete ninput num:“);scanf(“%d“,delete_list(head,num);break;case 3:printf(“find ninput data:“);scanf(“%d“,s=find_list(head,num); /*数据查找 s 已经接收,至于你要做什么,我就不懂了,你自己添加*/break;case 4:browse(head);break;case 5:exit_list(head);return;/*输入异常的时候 */default:break;