#include<stdio.h>
#define listsize 100
typedef struct
{
int data[listsize];
int len;
} Seqlist;
void createlist(Seqlist *l,int num)
{
int i;
printf("输入顺序表的数据:\n");
for(i=0; i<num; i++)
{
scanf("%d",&l->data[i]);
}
l->len=num;
}
void mergelist(Seqlist *la,Seqlist *lb,Seqlist *lc)
{
int i=0,j=0,k=0;
lc->len=la->len+lb->len;
while(i<la->len&&j<lb->len)
{
if(la->data[i]<lb->data[j])
{
lc->data[k]=la->data[i];
i++;
k++;
}
else
{
lc->data[k]=lb->data[j];
j++;
k++;
}
}
while(i<la->len)
{
lc->data[k]=la->data[i];
i++;
k++;
}
while(j<lb->len)
{
lc->data[k]=lb->data[j];
j++;
k++;
}
}
void printlist(Seqlist *l)
{
int i;
printf("打印顺序表:\n");
for(i=0; i<l->len; i++)
{
printf("%d ",l->data[i]);
}
}
int main()
{
Seqlist la,lb,lc;
int n,m;
la.len=0;
lb.len=0;
lc.len=0;
printf("请输入顺序表A的长度:\n");
scanf("%d",&n);
createlist(&la,n);
printlist(&la);
printf("\n请输入顺序表B的长度:\n");
scanf("%d",&m);
createlist(&lb,m);
printlist(&lb);
mergelist(&la,&lb,&lc);
printlist(&lc);
}
