将两个链表合并成一个链表的方法一

将两个链表合并成一个链表的方法一

ID:13069333

大小:31.50 KB

页数:3页

时间:2018-07-20

将两个链表合并成一个链表的方法一_第1页
将两个链表合并成一个链表的方法一_第2页
将两个链表合并成一个链表的方法一_第3页
资源描述:

《将两个链表合并成一个链表的方法一》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、/*链表的操作1)定义链表的结构;2)写函数创建链表;3)输入两个正数链表,连接成一个非递减链表(用借助辅助链表的方法)。*/#include#include#include#definenull0typedefstructLNode{intdata;structLNode*next;}LNode,*linklist;linklistcreatlist(){LNode*p,*L;L=(LNode*)malloc(sizeof(LNode));L->next=n

2、ull;L->data=0;while(1){p=(LNode*)malloc(sizeof(LNode));scanf("%d",&p->data);if(p->data==-1)break;++L->data;p->next=L->next;L->next=p;}returnL;}voidoutput(linklistL){LNode*p;printf("thefollowistheLinklistdata:");for(p=L->next;p!=null;p=p->next)printf("%3d",p-

3、>data);printf("thedataisover.");}linklistsort(linklistL){inti;linklistp,q,r,s;r=(linklist)malloc(sizeof(LNode));r->next=null;for(i=0;idata;i++){p=L->next;q=L->next->next;do{if((p->data)>(q->data))q=q->next;else{p=q;q=q->next;}}while(q);s=(linklist)mall

4、oc(sizeof(LNode));s->data=p->data;p->data=0;s->next=r->next;r->next=s;}returnr;}linklistMerglist(linklistL1,linklistL2,linklistL3){linklistp1,p2,p3;p1=L1->next;p2=L2->next;L3=p3=L1;while(p1&&p2){if(p1->data<=p2->data){p3->next=p1;p3=p1;p1=p1->next;}else{p3->ne

5、xt=p2;p3=p2;p2=p2->next;}}p3->next=p1?p1:p2;free(L2);returnL3;}main(){linklistLb;linklistLa,Lc;La=creatlist();Lb=creatlist();La=sort(La);Lb=sort(Lb);output(La);output(Lb);Lc=Merglist(La,Lb,Lc);output(Lc);getch();}

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

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

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