7-1 两个有序链表序列的合并 (15 分)
**
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 分)相关推荐
- 习题2.5 两个有序链表序列的合并 (15 分)
习题2.5 两个有序链表序列的合并 (15 分) 本题要求实现一个函数,将两个链表表示的递增整数序列合并为一个非递减的整数序列. 函数接口定义: List Merge( List L1, List L ...
- 7-3 两个有序链表序列的合并 (15 分)
7-3 两个有序链表序列的合并 (15 分) #include <stdio.h> #include <stdlib.h> typedef int ElementType; t ...
- 7-174 两个有序链表序列的合并 (20 分)
7-174 两个有序链表序列的合并 (20 分) 已知两个非降序链表序列S1与S2,设计函数构造出S1与S2合并后的新的非降序链表S3. 输入格式: 输入分两行,分别在每行给出由若干个正整数构成的非降 ...
- 7-51 两个有序链表序列的合并 (20 分)(vector做法)
一 :题目 .已知两个非降序链表序列S1与S2,设计函数构造出S1与S2合并后的新的非降序链表S3. 输入格式: 输入分两行,分别在每行给出由若干个正整数构成的非降序序列,用−1表示序列的结尾(−1不 ...
- 7-5 两个有序链表序列的合并 (20 分)
已知两个非降序链表序列S1与S2,设计函数构造出S1与S2合并后的新的非降序链表S3. 输入格式: 输入分两行,分别在每行给出由若干个正整数构成的非降序序列,用−1表示序列的结尾(−1不属于这个序列) ...
- 6-3 两个有序链表序列的合并
6-3 两个有序链表序列的合并 (15 分) 本题要求实现一个函数,将两个链表表示的递增整数序列合并为一个非递减的整数序列. 函数接口定义: List Merge( List L1, List L2 ...
- 两个有序链表序列的合并
习题2.5 两个有序链表序列的合并 (15 分) 本题要求实现一个函数,将两个链表表示的递增整数序列合并为一个非递减的整数序列. 函数接口定义: List Merge( List L1, List L ...
- 两个有序链表序列的合并编程
7-51 两个有序链表序列的合并 (20 分) 已知两个非降序链表序列S1与S2,设计函数构造出S1与S2合并后的新的非降序链表S3. 输入格式: 输入分两行,分别在每行给出由若干个正整数构成的非降序 ...
- 2021-10-27 PTA 数据结构 链表 两个有序链表序列的合并
题目:两个有序链表序列的合并 (本题来自PTA) 以下是AC代码(代码来源于老师所给的题解) #include<stdio.h> #include<stdlib.h> #inc ...
最新文章
- 3D Touch介绍: 一个数字压力器App和Quick Actions
- idea clone 华为云仓库
- JVM运行时数据区---方法区(内部结构)
- linux内核网络协议栈--数据包的接收过程(二十)
- 【推荐】关于JS中的constructor与prototype【转】
- jmetter持续时间_Jmeter常用线程组设置及场景运行时间计算
- easyui datagrid加载本地数据和网络数据
- 快速排序-超级详细代码注释!
- linux步进电机驱动程序,基于S3C2440嵌入式Linux的步进电机驱动程序
- 软件测试预演环境,什么是软件测试用例预演 有何优点?-软件水平考试-考试吧...
- zencart 模板文件说明
- Win11如何设置默认浏览器 win11设置默认浏览器的步骤方法
- python爬虫课设-爬取3000条数据并做数据可视化
- 【数字图像处理】图像几何变换之 图像的极坐标变化展开鱼眼图
- 启明创投投资企业神州细胞成功登陆科创板
- mysql中dist_在SQL语句中dist是什么意思
- c++程序设计报告总结
- 头歌JAVA数据结构答案
- 【c++】判断一个点是否在三角形内部
- JAVA —— 比较日期时间大小