将两个单链表归并成一个按元素值递减有序单链表

将两个单链表归并成一个按元素值递减有序单链表

ID:21131515

大小:25.50 KB

页数:3页

时间:2018-10-19

将两个单链表归并成一个按元素值递减有序单链表_第1页
将两个单链表归并成一个按元素值递减有序单链表_第2页
将两个单链表归并成一个按元素值递减有序单链表_第3页
资源描述:

《将两个单链表归并成一个按元素值递减有序单链表》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、将两个单链表归并成一个按元素值递减有序的单链表.txt珍惜生活——上帝还让你活着,就肯定有他的安排。雷锋做了好事不留名,但是每一件事情都记到日记里面。#include#includetypedefstructLNode{intnum;structLNode*next;}LNode,*linklist;voidInsertlist(linklist&L,inte)/*L为已知有序递增链表,在L的适当位置插入p,使得L保持有序性*/{linklistp1,q,p2;p1=(linklist)malloc(siz

2、eof(LNode));p1->num=e;if(L->next)/*判断链表L是否为空链表*/{q=L->next;/*将L第一个元素地址给q*/p2=L;while(q->next&&q->numnum)/*若q不是最后一个节点,且q的值小于p的值则q后移一位*/{p2=q;q=q->next;}if(q->num>=p1->num)/*查找插入位置*/{p1->next=q;p2->next=p1;}else{q->next=p1;p1->next=NULL;}/*插入节点*/}else{L->next=p1;p1->next=

3、NULL;}}voidcreatelist(linklist&L)/*创建带头结点的有序链表*/{inti,m,k;L=(linklist)malloc(sizeof(LNode));L->next=NULL;printf("请输入链表的长度:");scanf("%d",&m);printf("请输入数据:");/*建立一个带头节点单链表*/for(i=0;i

4、ack(linklist&L)/*链表的逆置*/{linklistp,q;p=L->next;/*p指向第一个元素*/L->next=NULL;while(p){q=p->next;p->next=L->next;L->next=p;p=q;}}voidmergelist(linklist&L1,linklistL2)/*合并L1,L2两个链表,用的地址L1作为新链表地址返回*/{linklistp1,p2,p3,p4;p1=L1->next;p2=L2->next;p3=L1;while(p1&&p2){if(p1->num<=p2->num

5、)/*若p1的值小于或等于p2的值,则帕p1p3同时后移*/{p3=p1;p1=p1->next;}else/*若p1的值大于p2的值,则p1前插入p2,p2和p3后移*/{p4=p2->next;p2->next=p1;p3->next=p2;p3=p2;p2=p4;}}p3->next=p1?p1:p2;/*插入剩余段*/free(L2);/*释放L2的头节点*/}voidprintlist(linklistL)/*打印已知链表*/{linklistp;p=L->next;while(p){printf("%5d",p->num);/*输

6、出数据*/p=p->next;}printf("");}voidmain(){linklistL1,L2;printf("创建有序链表L1");createlist(L1);printf("单链表L1为:");printlist(L1);printf("创建有序链表L2:");createlist(L2);printf("L2链表为:");printlist(L2);mergelist(L1,L2);//调用合并两个链表的函数printf("合并两个单链表后新的链表为:numscore");printlist(L1);pri

7、ntf("递减排序:");turnback(L1);printlist(L1);}

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

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

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