1、#include #include #define OK 1 #define ERROR 0typedef structint *elem;int length;int listsize; SqList;int InitList_Sq(SqList *L,int len)/构造一个空的线性表 L,该线性表预定义大小为 lenL-elem=(int *)malloc(sizeof(int)*len);if(!L-elem) return ERROR;L-length=0;L-listsize=len;return OK;int Load_Sq(SqList *L)/ 输出顺序表中的所有元素int
2、 i;if(L-length=0) printf(“The List is empty!“);elsefor(i=0;ilength;i+) printf(“%d “,L-elemi);printf(“n“);return OK;int Merg(SqList *LA,SqList *LB,SqList *LC)int i,j,k;i=j=k=0;while(ilengthLC-length+;k+;i+;elseLC-elemk=LB-elemj;LC-length+;k+;j+;while(ilength)LC-elemk=LA-elemi;LC-length+;k+;i+;while(j
3、length)LC-elemk=LB-elemj;LC-length+;k+;j+;return OK;int Free_Sq(SqList *L)free(L-elem);L-elem=NULL;return OK;int main()SqList *LA,*LB,*LC;int a_len,b_len,i;scanf(“%d“,LA=(SqList*)malloc(sizeof(SqList);LB=(SqList*)malloc(sizeof(SqList);LC=(SqList*)malloc(sizeof(SqList);InitList_Sq(LA,a_len);for(i=0;ielemi);LA-length+;scanf(“%d“,InitList_Sq(LB,b_len);for(i=0;ielemi);LB-length+;InitList_Sq(LC,a_len+b_len);Merg(LA,LB,LC);printf(“List A:“);Load_Sq(LA);printf(“List B:“);Load_Sq(LB);printf(“List C:“);Load_Sq(LC);Free_Sq(LA);Free_Sq(LB);Free_Sq(LC);free(LA);free(LB);free(LC);return 0;