C语言数据结构单链表.doc单链表的创建,销毁,删除元素,及插入元素#include<>#include<>#include<>structnode{ intdata; structnode*next;};structnode*creat()//创建链表{ structnode*p,*q,*head; inti=1; p=head=(structnode*)malloc(sizeof(structnode)); printf("请输入第%d个数字",i); scanf("%d",&p->data); head=p; while(p->data!=0&&i<10)//程序编写时为了快速创建链表以检验其他功能,所以设定链表元素为自动输入 { q=(structnode*)malloc(sizeof(structnode)); i++; printf("请输入第%d个数字\n",i);// scanf("%d",&q->data); q->data=i; p->next=q; p=q; } p->next=NULL; p=head; while(p!=NULL) { printf("%d\n",p->data); p=p->next; }returnhead;}structnode*destroy(head)//链表的销毁{ structnode*p,*s; p=(structnode*)malloc(sizeof(structnode)); p=head; printf("输出之前创建的链表\n"); while(p!=NULL)//在销毁前确认链表的各个元素都存在,并输出一次 { printf("%d\n",p->data); p=p->next; } p=head; while(p!=NULL)//销毁元素 { s=p->next; p->data=NULL; p->next=NULL; p=s; } p=head; while(p!=NULL)//检验链表是否还存在,若存在,就会输出其值 { printf("%d\n",p->data); p=p->next; } returnhead;}structnode*deletee(head)//删除元素{ structnode*p,*s; inti; p=(structnode*)malloc(sizeof(structnode)); printf("输出你要删除的元素值__"); scanf("%d",&i); p=head; while(p!=NULL&&p->next->data!=i)//找出该元素所在的位置 { p=p->next; } s=p->next; p->next=s->next; p=head; while(p!=NULL)//检验该元素是否还存在,若存在,就会输出其值 { printf("%d\n",p->data); p=p->next; } returnhead;}structnode*insert(head)//插入功能{ structnode*p,*s,*r; intg,h; r=s=p=(structnode*)malloc(sizeof(structnode
C语言数据结构单链表 来自淘豆网m.daumloan.com转载请标明出处.