1639: 线性表-两个有序表的合并(链式结构)
金币值:2
定数:10
时间限制:1.000 s
内存限制:128 M
正确:6
提交:8
正确率:75.00% 命题人:
题目描述
已知线性表LA和LB中的数据元素按值非递减有序排列,现要求将LA和LB归并为一个新的线性表LC且LC中的数据元素仍按值非递减有序列排列。
#include "stdio.h" #include "stdlib.h" typedef int ElemType; typedef struct Node { ElemType data; struct Node *next; } LNode,*linkList; void initList(li nkList &L); void inputList(li nkList L); void printList(li nkList L); void mergeList(li nkList LA,li nkList LB,li nkList LC); int main(void) { li nkList LA,LB,LC; initList(LA); inputList(LA); initList(LB); inputList(LB); initList(LC); mergeList(LA,LB,LC); printList(LC); return 0; } void initList(li nkList &L) { L=new LNode; L->next=NULL; } void inputList(li nkList L) {//尾插入法建立链表 int n; li nkList p,tail; tail=L; scanf("%d",&n); for(int i=0; i<n; i++) { p=new LNode; scanf("%d",&p->data); p->next=NULL; tail->next=p; tail=p; } } void printList(li nkList L) { li nkList p=L->next; while(p!=NULL) { printf("%d ",p->data); p=p->next; } printf("\n"); } /*仅提交以下代码*/ void mergeList(li nkList LA,li nkList LB,li nkList LC){ li nkList pa,pb,pc; pa=LA->next; pb=LB->next; pc=LC; while(________________){ if(__________________){ } else{ } } pc->next=pa!=NULL?pa:pb; delete LA; delete LB; }
输入格式
输入数据共4行:
第1行:LA的数据元素的数目
第2行:LA中的各数据元素,以空格间隔
第3行:LB的数据元素的数目
第4行:LB中的各数据元素,以空格间隔
第1行:LA的数据元素的数目
第2行:LA中的各数据元素,以空格间隔
第3行:LB的数据元素的数目
第4行:LB中的各数据元素,以空格间隔
输出格式
依次输出LC中各数据元素的值。
输入样例 复制
4
1 2 6 7
3
1 3 5
输出样例 复制
1 1 2 3 5 6 7