输入格式
第一行:顺序表A的元素个数
第二行:顺序表A的各元素(非递减),用空格分开
第三行:顺序表B的元素个数
第四行:顺序表B的各元素(非递减),用空格分开
输出格式
第一行:顺序表A的元素列表
第二行:顺序表B的元素列表
第三行:合并后顺序表C的元素列表
输入样例
5
1 3 5 7 9
5
2 4 6 8 10
输出样例
List A:1 3 5 7 9
List B:2 4 6 8 10
List C:1 2 3 4 5 6 7 8 9 10
Status List_load (SqList L,char ch){
int i;
printf("List %c:",ch);
for (i=0;i<L.length;i++)
printf("%d ",L.elem[i]);
printf("\n");
return OK;
}
Status mix ( SqList T1,SqList T2,SqList &T3 ) {
ElemType *pa,*pb,*pc,*palast,*pblast;
pa=T1.elem;pb=T2.elem;
T3.length=T3.listsize=T1.length+T2.length;
pc=T3.elem=(ElemType *) malloc (T3.listsize*sizeof(ElemType));
if (!T3.elem) return(ERROR);
palast=T1.elem+T1.length-1;
pblast=T2.elem+T2.length-1;
while (pa<=palast&&pb<=pblast){
if (*pa<=*pb) *pc++=*pa++;
else *pc++=*pb++;
}
while (pa<=palast) *pc++=*pa++;
while (pb<=pblast) *pc++=*pb++;
return OK;
}
int main()
{
SqList T1,T2,T3;
InitList_Sq(T1);InitList_Sq(T2);
int n,i;
ElemType value;
scanf("%d",&n);
for (i=1;i<=n;i++){
scanf("%d",&value);
ListInsert_Sq(T1,i,value);
}
scanf("%d",&n);
for (i=1;i<=n;i++){
scanf("%d",&value);
ListInsert_Sq(T2,i,value);
}
mix (T1,T2,T3);
List_load (T1,'A');
List_load (T2,'B');
List_load (T3,'C');
}