编辑代码

#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;

    //给LA插入元素
    printf("给LA插入元素,-99结束:\n");
    scanf("%d",&i);
    j=1;
    while(i!=-99)
    {    INSERT(LA,j,i);
    j++;
    scanf("%d",&i);
    }
    printf("\n输出LA元素:\n");
    //输出LA的元素内容
    for(i=1;i<=LENGTH(LA);i++)
    printf("%d\t",GET(LA,i));



        //给LB插入元素
    printf("\n给LB插入元素,-99结束:\n");
    scanf("%d",&i);
    j=1;
    while(i!=-99)
    {    INSERT(LB,j,i);
    j++;
    scanf("%d",&i);
    }
    //输出LB的元素内容
    printf("\n输出LB元素:\n");
    for(i=1;i<=LENGTH(LB);i++)
    printf("%d\t",GET(LB,i));



//给LC插入元素
    j=1;//遍历LC的空间
    for(i=1;i<=LENGTH(LA);i++)
    {
    INSERT(LC,j,GET(LA,i));
    j++;
    }
    for(i=1;i<=LENGTH(LB);i++)
    {
    INSERT(LC,j,GET(LB,i));
    j++;
    }

    //输出LC的元素内容
    printf("\n输出LC元素:\n");
    for(i=1;i<=LENGTH(LC);i++)
    printf("%d\t",GET(LC,i));

}
int i,j,k=0;
while(i<=LA.length && j<=LB.length){
    if(LA.data[i]<=LB.data[j]){
        LC->data[k++]=LA.data[i++];
    }else{
        LC->data[k++]]=LB.data[j++];
    }

}
while(i<=LA.length){
    LC->data[i]=LA.data[i++];
}
while(j<=LB.length){
    LC->data[]=LB.data[j++];
}
LC->length=k;