#include <stdio.h>
#include<stdlib.h>
#define MaxSize 100
typedef struct
{
int data[MaxSize];
int length;
}SqList;
int InitList(SqList *L)
{
L->length=0;
return 1;
}
int CreatList(SqList *L,int n)
{
int i,e;
for(i=0;i<n;i++)
{
scanf("%d",&e);
L->data[i]=e;
}
L->length=n;
return 1;
}
//删除有序顺序表中的重复元素
int del(SqList *L)
{
int k=0;
int i;
for(i=0;i<L->length;i++)
{
if(L->data[i]==L->data[i+1])
{
k++;
}
L->data[i-k+1]=L->data[i+1];
}
L->length=i-k;
return 1;
}
//从有序顺序表中删除其值在给定值s与t之间(包含s和t,要求s<t)的所有元素。
int yxdelcf(SqList *L,int s,int t)
{
//if(s>t||t>L->length||L->length==0)
// return 0;
int i,j,k;
j=0;
for(i=0;i<L->length;i++)
{
if(L->data[i]>=s)
{
k=i;
}
if((L->data[i]>=s)&&(L->data[i]<=t))
{
j +=1;
}
else if(i>=k)
{
L->data[i-j]=L->data[i];
}
}
printf("%d",j);
printf("\n");
L->length -=j;
return 1;
}
//第六题
int mergeList(SqList L1,SqList L2,SqList *L3)
{
L3->length=L1.length+L2.length;
int i=0;
int j=0;
int k=0;
while((i<L1.length)&&(j<L2.length))
{
if(L1.data[i]<=L2.data[j])
{
L3->data[k]=L1.data[i];
i++;
k++;
}
else
{
L3->data[k]=L2.data[j];
j++;
k++;
}
}
while(i<L1.length)
{
L3->data[k]=L1.data[i];
k++;
i++;
}
while(j<L2.length)
{
L3->data[k]=L2.data[j];
k++;
j++;
}
return 1;
}
void Printf_s(SqList *L)
{
int i;
for(i=0;i<L->length;i++)
{
printf("%d ",L->data[i]);
}
printf("\n");
}
int main()
{
//SqList L;
int n1,n2,n3;
SqList L1,L2,L3;
InitList(&L1);
InitList(&L2);
InitList(&L3);
scanf("%d",&n1);
CreatList(&L1,n1);
Printf_s(&L1);
scanf("%d",&n2);
CreatList(&L2,n2);
Printf_s(&L2);
mergeList(L1,L2,&L3);
Printf_s(&L3);