#include<stdio.h> #define maxSize 100 typedef struct { int data[maxSize]; int length; }Sqlist; void initSqlist(Sqlist &L) { L.length=0; } void ListInsert(Sqlist &L,int locate,int x) { if(L.length==maxSize||locate<0||locate>L.length+1) return; //把locate和后面的往后移动 for(int i=L.length;i>locate;i--) L.data[i+1]=L.data[i]; L.data[locate]=x; L.length+=1; } void ListDel(Sqlist &L,int locate,int &e) { if(locate<1||locate>L.length+1) return; e=L.data[locate]; for(int i=locate;i<L.length;i++) L.data[i]=L.data[i+1]; --(L.length); } void merge(Sqlist LA,Sqlist LB,Sqlist &LC) { int pa,pb; int i=0,j=0,k=0; initSqlist(LC); while(i<LA.length&&j<LB.length) { pa=LA.data[i]; pb=LB.data[j]; if(pa<=pb) { ListInsert(LC,k,pa); i++; } else { ListInsert(LC,k,pb); j++; } k++; } while(i<LA.length) { pa=LA.data[i]; ListInsert(LC,k,pa); i++; k++; } while(j<LB.length) { pb=LB.data[j]; ListInsert(LC,k,pb); j++; k++; } } void show(Sqlist L) { for(int i=0;i<L.length;i++) { printf("%d ",L.data[i]); } } int main() { int temp,len; Sqlist LA,LB,LC; initSqlist(LA); initSqlist(LB); initSqlist(LC); scanf("%d",&len); for(int i=0;i<len;i++) { scanf("%d",&temp); ListInsert(LA,i,temp); } scanf("%d",&len); for(int i=0;i<len;i++) { scanf("%d",&temp); ListInsert(LB,i,temp); } merge(LA,LB,LC); show(LC); }