链表的建立和删除,逆序

链表的建立和删除,逆序

ID:12051806

大小:35.50 KB

页数:5页

时间:2018-07-15

链表的建立和删除,逆序_第1页
链表的建立和删除,逆序_第2页
链表的建立和删除,逆序_第3页
链表的建立和删除,逆序_第4页
链表的建立和删除,逆序_第5页
资源描述:

《链表的建立和删除,逆序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、#include#include#includestructnode{intval;structnode*next;};//创建一个链表structnode*creat(structnode*head){intnum,i,x;structnode*tail,*p;head=tail=p=NULL;scanf("%d",&num);//输入链表的长度tail=p;for(i=0;i

2、rintf("mallocdefult");exit(1);}p->val=x;p->next=NULL;if(head==NULL){head=p;tail=head;//必须有,否则报错}else{tail->next=p;returnhead;}}}创建一个链表typedefstructnode{datatypedata;structnode*next;}linklist;头插法建立链表linklist*creatlish(){linklist*l,*head,*s;charch;l=(linklist*)malloc(sizeof(linklist));head=l;l->next=N

3、ULLch=getchar();while(ch!='#'){s=(linklist*)malloc(sizeof(linklist));s->data=ch;s->next=l->next;l->next=s;ch=getchar();returnhead;}尾插法建立链表linklist*creatlistr(){linklist*l,*s,*r;charch;l=(linklist*)malloc(sizeof(linklist));l->next=NULL;r=l;ch=getchar();while(ch!='#'){s=(linklist*)malloc(sizeof(linkli

4、st));s->data=ch;s-next=NULL;r-next=s;r=s;ch=getchar();}returnl;}//遍历链表并输出voidprintflist(structnode*head){while(head){printf("%d",head->val);head=head->next;}}//输出链表长度intcountlist(structnode*head){intcount=0;while(head){count++;head=head->next;}returncount;}//插入一个数,使原链表依然有序structnode*insert(structnod

5、e*head,intnum){structnode*p,*q,*r;p=(structnode*)malloc(sizeof(structnode));p->next=NULL;//为什么p=NULL不行?p->val=num;if(numval){p->next=head;head=p;returnhead;}for(q=r=head;q->next!=NULL;q=q->next){if(numval){r->next=p;p->next=q;returnhead;}r=q;}q->next=p;returnhead;}//删除一个元素structnode*delet

6、elist(structnode*head,intnum){structnode*p,*q,*r;if(head->val==num){p=head;head=head->next;free(p);returnhead;}//为什么是不对的for(q=head;q->next;q=q->next){r=q->next;if(num==r->val){q->next=r->next;free(r);break;}}q->next=NULL;returnhead;}//单链表的逆序structnode*inverse(structnode*head){structnode*middle,*tail

7、,*lead;tail=middle=NULL;lead=head;while(lead){middle=lead;lead=lead->next;middle->next=tail;tail=middle;}returnmiddle;}intmain(){intx;structnode*head;head=creat(head);//head=insert(head,0);//head=inse

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。