c语言将两个有序表合并

    科技2022-07-12  142

    #include<stdio.h> #include<stdlib.h> #define MaxSize 10 typedef struct { int data[MaxSize]; int length; }SqList; void InitList(SqList&L) { L.length=0; } void CreateList(SqList &L) { int num,i; printf("输入要创建的元素的个数"); scanf("%d",&num); for(i=0;i<num;i++) { printf("输入第%d个元素",i+1); scanf("%d",&L.data[i]); L.length++; } } bool Merge(SqList A,SqList B,SqList &C) { int i=0,j=0,k=0; while(i<A.length&&j<B.length) { if(A.data[i]<=B.data[j]) C.data[k++]=A.data[i++]; else C.data[k++]=B.data[j++]; } while(i<A.length) { C.data[k++]=A.data[i++]; } while(j<B.length) { C.data[k++]=B.data[j++]; } C.length=k; return true; } bool ShowList(SqList L) { if(L.length==0) return false ; else { for (int i=0; i<L.length; ++i) { printf("%d ", L.data[i]); //printf("\n"); } } return true; } int main() { int value; SqList A,B,C; InitList(A); CreateList(A); InitList(B); CreateList(B); Merge(A,B,C); ShowList(C); }
    Processed: 0.013, SQL: 8