#include<stdio.h>
#include<stdlib.h>
#define MaxSize 50
#define OK 1
#define ERROR 0
typedef int ElemType;
typedef struct
{
ElemType elem[MaxSize];
int length;
}SqList;
int DispList(SqList *L)
{
int i;
if(L->length==0)
{
printf("Blank List!");
return ERROR;
}
for(i=0;i<L->length;i++)
printf("%3d",L->elem[i]);
return OK;
}
void MergeList(SqList *la,SqList *lb,SqList *lc)
{
int i=0;
int 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=k;
}
void InitList(SqList *L)
{
int i;
printf("Please input the length of SqList:");
scanf("%d",&L->length);
printf("Please input the elements of Sqlist:");
for(i=0;i<L->length;i++)
{
scanf("%d",&L->elem[i]);
}
}
void main()
{
SqList *la,*lb,*lc;
la=(SqList*)malloc(sizeof(SqList));
InitList(la);
lb=(SqList*)malloc(sizeof(SqList));
InitList(lb);
lc=(SqList*)malloc(sizeof(SqList));
MergeList(la,lb,lc);
printf("The elements of after merge between SqList la and SqList lb:");
DispList(lc);
printf("\n");
}