合并的函数:

SLNode* merge(SLNode *head1,SLNode *head2,SLNode *head3)
{SLNode *p1,*p2,*p3;p1=head1->next,p2=head2->next;p3=head3;//从第一个有数值的结点开始比较 while(p1!=NULL&&p2!=NULL)//当两表都没便利完 {if(p1->data<=p2->data){p3->next=p1;p3=p3->next;p1=p1->next;}if(p1->data > p2->data){p3->next=p2;p3=p3->next;p2=p2->next; }if(p1!=NULL) p3->next=p1;//表二空了,直接接上表一 if(p2!=NULL) p3->next=p2;//表一空了,接上表二 }
}

完整代码:

#include<stdio.h>
#include<stdlib.h>#define MAX 100typedef struct Node{int data;struct Node* next;
}SLNode;SLNode* head_create(){//创建头结点 SLNode* head = (SLNode*)malloc(sizeof(SLNode));if(head==NULL) exit(1);head->next=NULL; return head;
} SLNode* Node_insert(SLNode *head,int i,int x)//把x插入i位置 ,从头结点开始遍历
{SLNode *p;p=head;//p指向头结点int m=0;while(m<i-1)//遍历到i-1位 {p=p->next;m++;}SLNode *q = (SLNode*)malloc(sizeof(SLNode));q->next=p->next;p->next=q; q->data=x;
}void print_SL(SLNode *head)//打印链表
{SLNode *p;p=head;if(p==NULL) printf("单链表空!\n");else{printf("head");p=p->next;}while(p!=NULL){printf("->%d",p->data);p=p->next;}printf("\n");
}SLNode* destroy(SLNode *head)//摧毁链表
{SLNode *p,*q;p=head->next;head->next=NULL;q=NULL;while(q!=NULL){q=p;p=p->next;free(q);q=NULL;}printf("sucess!");
}SLNode* merge(SLNode *head1,SLNode *head2,SLNode *head3)
{SLNode *p1,*p2,*p3;p1=head1->next,p2=head2->next;p3=head3;while(p1!=NULL&&p2!=NULL){if(p1->data<=p2->data){p3->next=p1;p3=p3->next;p1=p1->next;}if(p1->data > p2->data){p3->next=p2;p3=p3->next;p2=p2->next; }if(p1!=NULL) p3->next=p1;if(p2!=NULL) p3->next=p2;}
}main()
{ SLNode *SL1=head_create();for(int i=1;i<10;i++){Node_insert(SL1,i,i*i);//把i^2插入i的位置 }printf("单链表1为:\n");print_SL(SL1);SLNode *SL2=head_create();for(int i=1;i<10;i++){Node_insert(SL2,i,i*3);//把i^2插入i的位置 }printf("单链表2为:\n");print_SL(SL2);//合并单链表,将表二插到表3中 SLNode *SL3=head_create();printf("\n合并两个单链表为:\n");merge(SL1,SL2,SL3) ;print_SL(SL3);//摧毁链表 destroy(SL1);destroy(SL2);destroy(SL3);return 0;}

运行结果:

C语言-两个单链表的合并相关推荐

  1. c语言实现两个有序链表的合并(代码示例)

    c语言实现两个有序链表的合并: 现有两个有序单链表,通过代码实现将两个单链表合并为一个有序的新表,要求使用旧表的空间,不能新分配内存 #include #include typedef struct ...

  2. 将两个单链表合并为一个单链表

    将两个单链表合并为一个单链表(C语言实现) 目的:掌握单链表的应用和算法设计 内容:L1 =(x1, x2, -, xn ),L2 =(y1, y2, -, ym ),他们是两个线性表,采用带头结点的 ...

  3. c语言将两个有序表合并为一个有序表,c语言实现两个有序链表的合并(代码示例)...

    本篇文章通过代码示例介绍一下使用c语言合并两个有序链表的方法.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. 教程推荐:<c语言教程视频> c语言实现两个有序链表的合并 ...

  4. 两个有序单链表的合并排序算法

    设计两个有序单链表的合并排序算法 ListList MergeList(LiskList La, LinkList Lb){Lnode *pa = La->next;Lnode *pb = Lb ...

  5. C++头插法尾插法建立单链表,合并两个有序单链表

    A和B是两个单链表(带表头结点),其中元素递增有序.设计一个算法,将A和B归 并成一个按元素值非递减有序的链表 C,C由A 和B 中的结点组成. #include<iostream> #i ...

  6. 单链表操作之合并两个单链表

    ***单链表操作之合并两个单链表*** /*  本篇博客为合并两个单链表, 有序和无序都可以: 其中用到单链表的尾插和单链表的选择排序: @单链表排序之选择排序链接:http://blog.csdn. ...

  7. 【数据结构】实现:合并两个升序的单链表,合并之后的链表后依旧有序

    最近学习数据结构的算法的过程中,遇到了一个题,然后视频讲解的老师并没有给出答案(可能是我没找到),于是我就自己动手实现了一波.如有问题,请大家支点 核心思路 校验两个链表的长度,如果都为null,直接 ...

  8. (不带头结点的)单链表增删查改,逆置单链表(两种方法),求两个单链表的第一个公共结点,合并两个单链表,单循环链表中判断第一个入环点,约瑟夫环

    补充了每个算法的基本思想,并且画了思路图,源代码都经过调试成功 1.SlistNode.c文件 (1) (不带头结点的)单链表增删查改 #include "SlistNode.h" ...

  9. 7_2判断两个单链表是否相交,若相交,求出第一个交点

    转载请注明出处:http://www.cnblogs.com/wuzetiandaren/p/4251372.html 声明:现大部分文章为寻找问题时在网上相互转载,此博是为自己做个记录记录,方便自己 ...

最新文章

  1. 干货 | 当 YOLOv5 遇见 OpenVINO,实现自动检测佩戴口罩
  2. BugkuCTF web3
  3. Ajax Toolkit Control ——CollapsiblePanelExtender(隐藏显示效果)
  4. 项目经理如何参与任务管理
  5. 全球及中国香蕉连接器行业投资商机与前景趋势展望报告2022版
  6. Ajax post HTML 405,Web API Ajax POST向返回 405方法不允许_jquery_开发99编程知识库
  7. UnixLinux技术文章目录(2015-12-22更新)
  8. MyBatis - MyBatis Generator 生成的example 如何使用 and or 简单混合查询
  9. 机器学习中的特征建模(特征工程)和算法选型建模 - 以暴力破解识别为例
  10. C语言之字符串探究(七):atoi、itoa——整型数字和字符串的相互转换
  11. span的title标签中的换行
  12. Twitterrifi常用快捷键汇总
  13. [Vue] : Vue实例的声明周期
  14. python二叉树的非递归遍历
  15. AIX补丁中TL、SP、CSP、IF、PTF的含义
  16. 杂谈:微信为什么不出小号功能?
  17. 小白入门指南|zookeeper快速入门
  18. (光滑样条)Smoothing spline的数学推导
  19. 低代码接口开发平台——YesApi(免费注册)
  20. 使用python进行基音周期的计算

热门文章

  1. 联想 p系列服务器,全面解读联想ThinkStation P系列工作站
  2. 【音视频】使用FFMPEG进行RTSP|RTMP|HLS推流(3-3)
  3. 枪战英雄啥时候服务器维护结束,【公告】《枪战英雄》7月13日停服更新公告
  4. 利用python计算圆球的体积_点云到体积
  5. 利用word宏命令来自动化缩写期刊名称
  6. 电脑上怎么批量将视频变小
  7. 计算机设备名称英语词汇(1)
  8. Homekit智能家居-智能插座
  9. date(dateable)
  10. linux系统老毛桃怎么安装,windows10系统怎么安装运行linux系统