**

7-1 两个有序链表序列的合并 (15 分)

**
已知两个非降序链表序列S1与S2,设计函数构造出S1与S2合并后的新的非降序链表S3。

输入格式:

输入分两行,分别在每行给出由若干个正整数构成的非降序序列,用−1表示序列的结尾(−1不属于这个序列)。数字用空格间隔。

输出格式:

在一行中输出合并后新的非降序链表,数字间用空格分开,结尾不能有多余空格;若新链表为空,输出NULL。

输入样例:

1 3 5 -1
2 4 6 8 10 -1
//结尾无空行

输出样例:

1 2 3 4 5 6 8 10
//结尾无空行

#include <stdio.h>
#include <stdlib.h>
#define INCRESIZE 100typedef struct node{int data;struct node *next;
}lnode,*linklist;void initlist(linklist *l){//头指针*l=(linklist)malloc(sizeof(lnode));(*l)->next=NULL;
}int initlist1(linklist *l){//头指针*l=(linklist)malloc(sizeof(lnode));if(!*l)return 0;(*l)->next=NULL;return 1;
}void inputlist2(linklist l){//尾接法int x;linklist p,r;r=l;scanf("%d",&x);while(x!=-1){p=(linklist)malloc(sizeof(lnode));p->data=x;r->next=p;r=p;scanf("%d",&x);}r->next=NULL;
}linklist unionlist(linklist la,linklist lb){//链表合并linklist pa,pb,pc,q;pc=(linklist)malloc(sizeof(lnode));pa=la->next;pb=lb->next;pc->next=NULL;q=pc;while(pa!=NULL&&pb!=NULL){if(pa->data<=pb->data){q->next=pa;pa=pa->next;q=q->next;}else{q->next=pb;pb=pb->next;q=q->next;}}if(pa!=NULL)q->next=pa;if(pb!=NULL)q->next=pb;return pc;
}void outputlist(linklist l){//输出linklist p;p=l->next;if(p==NULL){printf("NULL");}else{while(p){printf("%d",p->data);if(p->next)printf(" ");p=p->next;}}
}int main(int argc, const char * argv[]) {linklist l1,l2,l3;initlist(&l1);initlist(&l2);initlist(&l3);inputlist2(l1);inputlist2(l2);l3=unionlist(l1,l2);outputlist(l3);return 0;
}

7-1 两个有序链表序列的合并 (15 分)相关推荐

  1. 习题2.5 两个有序链表序列的合并 (15 分)

    习题2.5 两个有序链表序列的合并 (15 分) 本题要求实现一个函数,将两个链表表示的递增整数序列合并为一个非递减的整数序列. 函数接口定义: List Merge( List L1, List L ...

  2. 7-3 两个有序链表序列的合并 (15 分)

    7-3 两个有序链表序列的合并 (15 分) #include <stdio.h> #include <stdlib.h> typedef int ElementType; t ...

  3. 7-174 两个有序链表序列的合并 (20 分)

    7-174 两个有序链表序列的合并 (20 分) 已知两个非降序链表序列S1与S2,设计函数构造出S1与S2合并后的新的非降序链表S3. 输入格式: 输入分两行,分别在每行给出由若干个正整数构成的非降 ...

  4. 7-51 两个有序链表序列的合并 (20 分)(vector做法)

    一 :题目 .已知两个非降序链表序列S1与S2,设计函数构造出S1与S2合并后的新的非降序链表S3. 输入格式: 输入分两行,分别在每行给出由若干个正整数构成的非降序序列,用−1表示序列的结尾(−1不 ...

  5. 7-5 两个有序链表序列的合并 (20 分)

    已知两个非降序链表序列S1与S2,设计函数构造出S1与S2合并后的新的非降序链表S3. 输入格式: 输入分两行,分别在每行给出由若干个正整数构成的非降序序列,用−1表示序列的结尾(−1不属于这个序列) ...

  6. 6-3 两个有序链表序列的合并

    6-3 两个有序链表序列的合并 (15 分) 本题要求实现一个函数,将两个链表表示的递增整数序列合并为一个非递减的整数序列. 函数接口定义: List Merge( List L1, List L2 ...

  7. 两个有序链表序列的合并

    习题2.5 两个有序链表序列的合并 (15 分) 本题要求实现一个函数,将两个链表表示的递增整数序列合并为一个非递减的整数序列. 函数接口定义: List Merge( List L1, List L ...

  8. 两个有序链表序列的合并编程

    7-51 两个有序链表序列的合并 (20 分) 已知两个非降序链表序列S1与S2,设计函数构造出S1与S2合并后的新的非降序链表S3. 输入格式: 输入分两行,分别在每行给出由若干个正整数构成的非降序 ...

  9. 2021-10-27 PTA 数据结构 链表 两个有序链表序列的合并

    题目:两个有序链表序列的合并 (本题来自PTA) 以下是AC代码(代码来源于老师所给的题解) #include<stdio.h> #include<stdlib.h> #inc ...

最新文章

  1. 3D Touch介绍: 一个数字压力器App和Quick Actions
  2. idea clone 华为云仓库
  3. JVM运行时数据区---方法区(内部结构)
  4. linux内核网络协议栈--数据包的接收过程(二十)
  5. 【推荐】关于JS中的constructor与prototype【转】
  6. jmetter持续时间_Jmeter常用线程组设置及场景运行时间计算
  7. easyui datagrid加载本地数据和网络数据
  8. 快速排序-超级详细代码注释!
  9. linux步进电机驱动程序,基于S3C2440嵌入式Linux的步进电机驱动程序
  10. 软件测试预演环境,什么是软件测试用例预演 有何优点?-软件水平考试-考试吧...
  11. zencart 模板文件说明
  12. Win11如何设置默认浏览器 win11设置默认浏览器的步骤方法
  13. python爬虫课设-爬取3000条数据并做数据可视化
  14. 【数字图像处理】图像几何变换之 图像的极坐标变化展开鱼眼图
  15. 启明创投投资企业神州细胞成功登陆科创板
  16. mysql中dist_在SQL语句中dist是什么意思
  17. c++程序设计报告总结
  18. 头歌JAVA数据结构答案
  19. 【c++】判断一个点是否在三角形内部
  20. JAVA —— 比较日期时间大小

热门文章

  1. CSS3---2D/3D应用
  2. BootstrapTable分页(二)
  3. 「雕爷学编程」Arduino动手做(35)——模拟量声音传感器
  4. windows下开启 PHP扩展Redis
  5. tomcat清除缓存配置方法
  6. 搭建自己的博客(二十六):优化点赞功能,并添加模态登录框
  7. python朋友圈切图代码
  8. split出现得问题
  9. LoadRunner error -27728
  10. asp.net 初步入门使用正则抓取网页信息