1630: 线性表-2个有序表的合并(顺序存储)
金币值:2
定数:8
时间限制:1.000 s
内存限制:128 M
正确:15
提交:20
正确率:75.00% 命题人:
题目描述
已知线性表LA和LB中的数据元素按值非递减有序排列,现要求将LA和LB归并为一个新的线性表LC且LC中的数据元素仍按值非递减有序列排列。
#include <stdio.h> #include <stdlib.h> #define MAXSIZE 100 //假设建立有序表时输入的数据已经有序 typedef int ElemType; typedef struct { ElemType *elem; // 顺序表数组的基址 int length; // 顺序表当前元素个数 } SqList; void initList(SqList &L); void inputList(SqList &L); void mergeList(SqList La,SqList Lb,SqList &Lc); void printList(SqList L); int main(void) { SqList La,Lb,Lc; initList(La); initList(Lb); inputList(La); inputList(Lb); initList(Lc); mergeList(La,Lb,Lc); printList(Lc); return 0; } void initList(SqList &L) { L.elem=(ElemType*)malloc(MAXSIZE*sizeof(ElemType)); L.length=0; } void inputList(SqList &L) { scanf("%d",&L.length); for(int i=0; i<L.length; i++) scanf("%d",&L.elem[i]); } void printList(SqList L) { for(int i=0; i<L.length; i++) printf("%d ",L.elem[i]); } /*仅提交以下代码*/ void mergeList(SqList La,SqList Lb,SqList &Lc) { int i=0,j=0,k=0; Lc.length=La.length+Lb.length; while(i<La.length && j<Lb.length) { if(La.elem[i]<=Lb.elem[j]) { } else { } } while(i<La.length) { } while(j<Lb.length) { } }
输入格式
输入数据共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