将两个有序顺序表合并为一个有序表
请看代码
#include<stdio.h>
#define MaxSize 30
struct SqList
{
int data[MaxSize];
int length;
};
int merge(struct SqList *A,struct SqList *B,struct SqList *C)
{
if(A->length==0||B->length==0)
return 0;
int i = 0;
int j = 0;
int k=0;
while(i<A->length&&j<B->length)
{
if(A->data[i]<=B->data[j])
{
C->data[k] = A->data[i];
i++;
k++;
}
else
{
C->data[k] = B->data[j];
j++;
k++;
}
}
while(i<(A->length))
{
C->data[k] = A->data[i];
i++;
k++;
}
while(j<(B->length))
{
C->data[k] = B->data[j];
j++;
k++;
}
C->length = k;
return 1;
}
int main()
{
struct SqList A,B,C;
A.length = 0;
B.length = 0;
C.length = 0;
int i;
for(i = 0;i<4;i++)
{
scanf("%d",&(A.data[i]));
A.length=A.length+1;
}
printf("A输入结束");
for(i=0;i<5;i++)
{
scanf("%d",&(B.data[i]));
B.length=B.length+1;
}
printf("B输入结束");
merge(&A,&B,&C);
for(i=0;i<C.length;i++)
{
printf("%d\n",C.data[i]);
}
return 0;
}