#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 100
typedef struct
{
int elem[MAXSIZE];
int length;
}SList;
int read(SList *L)//读入数据
{
int i=0,n=0;
printf("元素个数:");
scanf("%d",&n);
printf("输入%d个元素:\n",n);
for(i=0;i<n;i++)
scanf("%d",&L->elem[i]) ;
L->length=n;
return 0;
}
void print(SList *L)//输出数据
{
printf("%d\n",L->length);
printf("顺序表为:\n");
int i=0;
for(i=0;i<L->length;i++)
printf("%d",L->elem[i]);
printf("\n");
}
void mergeList(SList *LA,SList *LB,SList *LC)//合并表课本P46
{
int i=0,j=0,k=0;
while(i<LA->length&&j<LB->length)
{
if(LA->elem[i]<=LB->elem[j])
{
LC->elem[k]=LA->elem[i];
i++;k++;
}
else
{
LC->elem[k]=LB->elem[j];
j++;k++;
}
}
while(i<LA->length)
{
LC->elem[k]=LA->elem[i];
i++;k++;
}
while(j<LB->length)
{
LC->elem[k]=LB->elem[j];
j++;k++;
}
LC->length=LA->length+LB->length;
}
int main()
{
int a,b;
SList A,B,C;
read(&A);
read(&B);
mergeList(&A,&B,&C);
print(&C);
return 0;
}