合并A,B为线性表C(表C用顺序表实现)
设有线性表A=(a1,a2,…,am),B=(b1,b2,…,bn)。试编写一个合并A,B为线性表C的算法,使得 a1, b1,a2, b2,…, am ,bm, bm+1,…,bn
当m<=n时:C= a1, b1,a2, b2,…, am ,bm, bm+1,…,bn
当m>n时: C=a1, b1,a2, b2,…, an ,bn, an+1,…,am
#include #include #define MAXSIZE 60 typedef struct { int a[MAXSIZE]; int size; } sequencelist; /*初始化顺序表*/ void init(sequencelist *A,sequencelist *B,sequencelist *C) { A->size=0; B->size=0; C->size=0; } void inputAB(sequencelist *A,sequencelist *B) { int a,i=0; printf("请输入顺序表A的内容(以-1结束): "); do { scanf("%d",&a); if(a!=-1) { A->a[i]=a; A->size++; i++; } } while(a!=-1&&i a[i]=a; B->size++; i++; } } while(a!=-1&&i =A.size){ C->a[i]=B.a[k]; k++; }else{ C->a[i]=A.a[j]; j++; } } else{ if(k>=B.size){ C->a[i]=A.a[j]; j++; } else{ C->a[i]=B.a[k]; k++; } } C->size++; } } void printAB(sequencelist A,sequencelist B) { int i; printf("顺序表A的内容为: "); for(i=0; i#include #include #define MAXSIZE 60 typedef struct { int a[MAXSIZE]; int size; } sequencelist; /*初始化顺序表*/ void init(sequencelist *A,sequencelist *B,sequencelist *C) { A->size=0; B->size=0; C->size=0; } void inputAB(sequencelist *A,sequencelist *B) { int a,i=0; printf("请输入顺序表A的内容(以-1结束): "); do { scanf("%d",&a); if(a!=-1) { A->a[i]=a; A->size++; i++; } } while(a!=-1&&i a[i]=a; B->size++; i++; } } while(a!=-1&&i =A.size){ C->a[i]=B.a[k]; k++; }else{ C->a[i]=A.a[j]; j++; } } else{ if(k>=B.size){ C->a[i]=A.a[j]; j++; } else{ C->a[i]=B.a[k]; k++; } } C->size++; } } void printAB(sequencelist A,sequencelist B) { int i; printf("顺序表A的内容为: "); for(i=0; i