《数据结构学习与实验指导》2-12:两个有序链表序列的交集
来源:互联网 发布:冒充淘宝客服诈骗 编辑:程序博客网 时间:2024/05/17 02:23
实验内容:已知两个非降序链表序列S1与S2,要求构造出它们的交集链表S3。
输入说明:输入分2行,分别在每行给出由若干个正整数构成的非降序序列,用-1表示序列结尾(-1不属于序列)。数字用空格间隔。
输出说明:在一行中输出两个输入序列的交集序列,数字间用空格分开,结尾不能有多余空格;若新链表为空,输出NULL。
测试用例:
输入 | 输出
1 2 5 -1
2 4 5 8 10 -1 | 2 5
1 3 5 -1
2 4 6 8 10 -1 | NULL
1 2 3 4 5 -1
1 2 3 4 5 -1 | 1 2 3 4 5
3 5 7 -1
2 3 4 5 6 7 8 -1 | 3 5 7
-1
10 100 1000 -1 | NULL
#include <stdio.h>#include <stdlib.h>typedef struct Node { int num; struct Node *next;} *PNode, *PLink;PLink init();void add(int num, PLink link);void print(PLink link);void release(PLink link);int main() { int num = 0; PLink link1 = init(); do { scanf("%d", &num); if (num == -1) { break; } add(num, link1); } while (1); PLink link2 = init(); do { scanf("%d", &num); if (num == -1) { break; } add(num, link2); } while (1); PLink link3 = init(); PNode p1 = link1; p1 = p1->next; PNode p2 = link2; p2 = p2->next; while (p1 != NULL && p2 != NULL) { if (p1->num < p2->num) { p1 = p1->next; } else if (p1->num > p2->num) { p2 = p2->next; } else { add(p1->num, link3); p1 = p1->next; p2 = p2->next; } } print(link3); release(link1); release(link2); release(link3); return 0;}PLink init() { PNode pNode = (PNode) malloc(sizeof(PNode)); pNode->next = NULL; return pNode;}void add(int num, PLink link) { PNode p = link; while (p->next != NULL) { p = p->next; } PNode pNode = (PNode) malloc(sizeof(PNode)); pNode->num = num; pNode->next = NULL; p->next = pNode;}void release(PLink link) { PNode p = link; while (p != NULL) { PNode pp = p; free(pp); p = p->next; }}void print(PLink link) { PNode p = link; if (p->next != NULL) { p = p->next; } else { printf("NULL\n"); return; } printf("%d", p->num); while (p->next != NULL) { p = p->next; printf(" %d", p->num); } printf("\n");}
阅读全文
0 0
- 《数据结构学习与实验指导》2-12:两个有序链表序列的交集
- <数据结构学习与实验指导>2-12两个有序链表序列的交集/2-13两个有序序列的中位数
- 《数据结构学习与实验指导》2-11:两个有序链表序列的合并
- <数据结构学习与实验指导>2-10海盗分赃/2-11两个有序链表序列的合并
- 《数据结构学习与实验指导》2-13:两个有序序列的中位数
- 实验项目 2-12:两个有序链表序列的交集
- 两个有序链表序列的交集
- PAT 2-12. 两个有序链表序列的交集
- 2-12. 两个有序链表序列的交集
- 2-12. 两个有序链表序列的交集
- pat 2-12. 两个有序链表序列的交集
- 7-2 两个有序链表序列的交集
- 7-2 两个有序链表序列的交集
- PAT 2-12 两个有序链表序列的交集(C语言实现)
- PAT2-12. 两个有序链表序列的交集
- 【C】两个有序链表序列的交集
- 5-16 两个有序链表序列的交集
- PTA习题 两个有序链表序列的交集
- vert.x笔记:4.vert.x中调用spring服务
- 开源机器学习软件
- 【测试左移专栏】测试左移实践探讨 ——测试左移在腾讯地图SDK的实践
- [typeScript语法3]interface
- 36 WebGL两个简单模型组合成一个具有交互效果的模型
- 《数据结构学习与实验指导》2-12:两个有序链表序列的交集
- ios 添加监听
- 集成U-Share 分享
- vert.x笔记:5.vert.x集成dubbo服务
- 【UGUI】按钮需要绑定带参数的事件或绑定多个事件
- linux等用过的命令
- [YTU]_2921( Shape系列-7)
- Tensorflow: Math变量初始化
- vert.x笔记:6.vert.x集群化部署