7-1 两个有序链表序列的合并(20 分)
来源:互联网 发布:网络四大神兽 编辑:程序博客网 时间:2024/04/30 06:50
7-1 两个有序链表序列的合并(20 分)#include<iostream>#include<malloc.h>#define OK 1#define ERROR 0#define OVERFLOW -1using namespace std;typedef int Status;typedef int ElemType;typedef struct LNode{ ElemType data; struct LNode* next;} LNode, *LinkList;Status InitList(LinkList& L){ L = new LNode; if(!L) exit(OVERFLOW); L->next = NULL; return OK;}Status InsertList(LinkList& L){ LNode* p = L; int num; while(1) { cin >> num; if(num == -1) { break; } else { LNode* r; r = new LNode; r->data = num; r->next = p->next; p->next = r; p = r; } } return OK;}void PrintList(LinkList& L){ LNode* p = L->next; if(!p) cout << "NULL"; /*else { cout << p->data; p = p->next; while(p) { cout << p->data; p = p->next; } }*/ else { while(p!=NULL) { if(p->next!= NULL) cout << p->data << " "; else cout << p->data; p=p->next; } }}Status getMerge(LinkList& L1,LinkList& L2, LinkList& L3){ LNode* p = L1->next, *q = L2->next; L3 = L1; LNode *r = L3; while(p && q) { if(p->data <= q->data) { r->next = p; r = p; p = p->next; } else { r->next = q; r = q; q = q->next; } } r->next = p ? p : q; /* while(p && q) { if(p->data >= q->data) { LNonde* s = q->next, *tmp = r ->next; r->next = q; } else { LNode* s; s->data = p->data; s->next = r->next; r->next = s; r = s; p = p->next; } } while(p) { LNode *s; s = new LNode; s->data = p->data; s->next = r->next; r->next = s; r = s; p = p->next; } while(q) { LNode* s; s->data = q->data; s->next = r->next; r->next = s; r = s; q = q->next; }*/ return OK;}int main(){ LinkList L1, L2, L3; InitList(L1); InitList(L2); InitList(L3); InsertList(L1); InsertList(L2); getMerge(L1, L2, L3); PrintList(L3);}
已知两个非降序链表序列S1与S2,设计函数构造出S1与S2的并集新非降序链表S3。
输入格式:
输入分两行,分别在每行给出由若干个正整数构成的非降序序列,用−1表示序列的结尾(−1不属于这个序列)。数字用空格间隔。
输出格式:
在一行中输出合并后新的非降序链表,数字间用空格分开,结尾不能有多余空格;若新链表为空,输出NULL
。
输入样例:
1 3 5 -12 4 6 8 10 -1
输出样例:
1 2 3 4 5 6 8 10
阅读全文
0 0
- 两个有序链表序列的合并(20 分)
- 7-1 两个有序链表序列的合并(20 分)
- 7-1 两个有序链表序列的合并(20 分)
- 7-15 两个有序链表序列的合并(20 分)
- 5-51 两个有序链表序列的合并(20分)
- pta5-51 两个有序链表序列的合并(20分)
- 02-线性结构1 两个有序链表序列的合并(15 分)
- [PTA] 线性结构1 两个有序链表序列的合并(15 分)
- 02-线性结构1 两个有序链表序列的合并(15 分)
- 02-线性结构1 两个有序链表序列的合并(15 分)
- 02-线性结构1 两个有序链表序列的合并(15 分)
- 7-1 两个有序链表序列的合并
- 7-1 两个有序链表序列的合并
- 7-1 两个有序链表序列的合并
- 7-1 两个有序链表序列的合并
- 两个有序链表序列的交集(20 分)
- 5-51 两个有序链表序列的合并 (20分)
- 5-51 两个有序链表序列的合并 (20分)
- H5页面中有关视频的一些问题
- react-native的state
- Python的 enumerate zip map reduce filter
- Vector 中内存分配的问题( resize、reserve )
- Capstone日志2017-12-18
- 7-1 两个有序链表序列的合并(20 分)
- Android系统四大组件
- android 打造真正的下拉刷新上拉加载recyclerview(二):添加删除头尾部
- 杭电acm1232 畅通工程
- Android 安装assets目录下的其他apk
- JavaScript ---- 一些简单使用
- Ajax 第一天
- litepal笔记(持续更新)
- Java基础总结第(5)天