#define MAXSIZE 100 typedef int ElemType;/*顺序表的合并运算*/ typedef struct { ElemType elem[MAXSIZE];//用数组模拟线性表 int last;//记录线性表中最后一个元素的位置 }SeqList; int merge(SeqList *La,SeqList *Lb,SeqList *Lc)/*线性表的合并运算*/ { int i,j,k,l; i=0;j=0;k=0; while(i<=La->last&&j<=Lb->last) 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->last) { Lc->elem[k]=La->elem[i]; i++; k++; } while(j<=Lb->last) { Lc->elem[k]=Lb->elem[j]; j++; k++; } Lc->last=La->last+Lb->last+1; } void main() { SeqList LA,LB,LC; int p,q,r,i,j; printf("请输入线性表LA的长度:"); scanf("%d",&p); LA.last=p-1; printf("/n请输入线性表LA中各元素的值:"); for(i=0;i<=LA.last;i++) scanf("%d",&LA.elem[i]); printf("/n请输入线性表LB的长度:"); scanf("%d",&q); LB.last=p; printf("/n请输入线性表LB中各元素的值:"); for(i=0;i<=LB.last;i++) scanf("%d",&LB.elem[i]); merge(&LA,&LB,&LC); printf("/n合并后线性表LC为:"); for(j=0;j<=LC.last;j++) printf("%d ",LC.elem[j]); }