#include <stdio.h>
#define DATATYPE1 int
#define MAXSIZE 100
typedef struct
{
DATATYPE1 data[MAXSIZE];
int len;
}SEQUENLIST;
void INITIATE (SEQUENLIST *L){
L->len = 0;
return;
}
int LENGTH(SEQUENLIST *L){
return(L->len);
}
DATATYPE1 GET(SEQUENLIST *L,int i){
if (i < 1 || i > L->len)
return(0);
else
return(L->data[i-1]);
}
int LOCATE(SEQUENLIST *L,DATATYPE1 x){
int k;
k=1;
while (k <= L->len && L->data[k-1]!= x)
k++;
if (k<=L->len)
return(k);
else
return(0);
}
void INSERT(SEQUENLIST *L,int i,DATATYPE1 b){
int k;
if (i < 1 || i>L->len+1 || L->len>=MAXSIZE)
printf("error");
else
for (k=L->len; k>=i;k--)
L->data[k]=L->data[k-1];
L->data[i-1]=b;
L->len++;
}
void DELETE(SEQUENLIST *L,int i)
{
int k;
if (i < 1 || i > L->len || L->len==0)
printf("error");
else{
for ( k = i+1; k <= L->len; k++)
L->data[k-2] = L->data[k-1];
L->len--;
}
}
int EMPTY(SEQUENLIST *L){
if (L->len==0)
return(1);
else
return(0);
}
int main(){
SEQUENLIST A,B,C,*LA,*LB,*LC;
LA=&A;
LB=&B;
LC=&C;
INITIATE(LA);
INITIATE(LB);
INITIATE(LC);
int i,j;
printf("给LA插入元素,-99结束:\n");
scanf("%d",&i);
j=1;
while(i!=-99)
{ INSERT(LA,j,i);
j++;
scanf("%d",&i);
}
printf("\n输出LA元素:\n");
for(i=1;i<=LENGTH(LA);i++)
printf("%d\t",GET(LA,i));
printf("\n给LB插入元素,-99结束:\n");
scanf("%d",&i);
j=1;
while(i!=-99)
{ INSERT(LB,j,i);
j++;
scanf("%d",&i);
}
printf("\n输出LB元素:\n");
for(i=1;i<=LENGTH(LB);i++)
printf("%d\t",GET(LB,i));
i=j=1;
int k=1;
while(i<=LENGTH(LA)&&j<=LENGTH(LB)){
if(GET(LA,i)<GET(LB,j)){
INSERT(LC,k,GET(LA,i));
i++;
k++;
}else{
INSERT(LC,k,GET(LB,j));
j++;
k++;
}
}
while(i<=LENGTH(LA)){
INSERT(LC,k,GET(LA,i));
i++;
k++;
}
while(j<=LENGTH(LB)){
INSERT(LC,k,GET(LB,j));
j++;
k++;
}
printf("\n输出LC元素:\n");
for(i=1;i<=LENGTH(LC);i++)
printf("%d\t",GET(LC,i));
}