欢迎来到天天文库
浏览记录
ID:13069333
大小:31.50 KB
页数:3页
时间:2018-07-20
《将两个链表合并成一个链表的方法一》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
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();}
此文档下载收益归作者所有