链表——两个有序链表序列的合并
来源:互联网 发布:java获取访问者的ip 编辑:程序博客网 时间:2024/06/14 04:36
已知两个非降序链表序列S1与S2,设计函数构造出S1与S2的并集新非降序链表S3。
输入格式:
输入分两行,分别在每行给出由若干个正整数构成的非降序序列,用−表示序列的结尾(−不属于这个序列)。数字用空格间隔。
输出格式:
在一行中输出合并后新的非降序链表,数字间用空格分开,结尾不能有多余空格;若新链表为空,输出NULL
。
输入样例:
1 3 5 -12 4 6 8 10 -1
输出样例:
1 2 3 4 5 6 8 10
#include<bits/stdc++.h>using namespace std;#define OK 1#define ERROR 0typedef int Status;typedef int ElemType;typedef struct LNode *List;typedef struct LNode{ ElemType data; struct LNode *next;} LNode,*LinkList;Status InitList(LinkList &L){ L = new LNode; L -> next = NULL; return OK;}Status IsEmpty(LinkList &L){ if(L == NULL || L -> next == NULL) { return OK; } else return ERROR;}Status CreatList(LinkList &L){ LNode *p,*q; L = new LNode; L ->next = NULL; p = L;//指向链表头结点 q = new LNode;//新结点 ElemType e; cin>>e; while(e != -1) { q -> data = e;//新结点赋值e q -> next = NULL;//将next置空 p -> next = q;//链表指向新结点,后插法 p = q; q = new LNode; cin>>e;//输入直到-1 }}void PrintList(LinkList &L){ LNode *p = L ->next; while(p) { if(p -> next == NULL) { cout<<p -> data<<endl; } else cout<<p -> data<<" "; p = p -> next; }}Status MergeList(LinkList &L1,LinkList &L2,LinkList &L3){ LNode *p1 = L1 -> next; LNode *p2 = L2 -> next; L3 = L1;//L1头结点作为L3头结点 LNode *p3 = L3; while(p1 && p2) { if(p1->data < p2 -> data) { p3 -> next = p1; p3 = p1; p1 = p1 -> next; } else { p3 -> next = p2; p3 = p2; p2 = p2 -> next; } } p3 -> next = p1 ? p1 :p2;//若有一个未到达末尾直接接到L3 delete L2;}int main(){ LinkList L1,L2,L3; InitList(L1); InitList(L2); InitList(L3); CreatList(L1); CreatList(L2); MergeList(L1,L2,L3); if(IsEmpty(L3)) { cout<<"NULL"<<endl; } else PrintList(L3);}
阅读全文
0 0
- 链表——两个有序链表序列的合并
- 两个有序链表序列的合并
- 两个有序链表序列的合并
- 两个有序链表序列的合并
- 两个有序链表序列的合并
- 两个有序链表序列的合并
- 两个有序链表序列的合并
- 两个有序链表序列的合并
- 两个有序链表序列的合并
- 两个有序链表序列的合并
- 两个有序链表序列的合并
- 两个有序链表序列的合并
- 两个有序链表序列的合并
- 数据结构—链表— 两个有序链表序列的合并
- 数据结构_中国大学MOOC(慕课)——两个有序链表序列的合并问题
- 【MOOC—数据结构习题】两个有序链表序列的合并
- 链表使用: 两个有序链表序列的合并
- 链表练习:两个有序链表序列的合并
- python利用WMI等监控获取windows状态如CPU、内存、硬盘等信息
- GSON解析json含有不确定的泛型实体类,根据键值获取json数据
- JAVA List循环队列删除元素/List.remove
- dotnet控制台应用程序的静态main函数中不能直接调用成员函数
- 解释器模式的简单使用
- 链表——两个有序链表序列的合并
- linux系统编程学习day4--IPC(进程间通信)
- 我踩过的坑
- 小程序中的极度诱惑——玩转小程序91
- Android系统服务(SystemService)简介
- JSON
- 长期更新知识点
- Privacy Policy
- java swing实现简单的中国象棋小游戏源码