代码如下:
#include#include #define Size 999 struct array { int* p; int Lenght; }; typedef struct array list,* listP; void Initlist(listP P);//初始化结构体 void Merge(const list La,const list Lb,listP P); void Initlist(listP P) { printf("请输入表长及元素(元素用空格隔开):"); scanf("%d",&P->Lenght); P->p=(int*)malloc(sizeof(int)*Size); for(int i=0;i!=P->Lenght;i++) scanf("%d",&P->p[i]); } void Merge(const list La,const list Lb,listP P) { int i,j,k; i=j=k=0; P->p=(int*)malloc(sizeof(int)*(La.Lenght+Lb.Lenght)); while(i<=La.Lenght-1&&j<=Lb.Lenght-1){ if(La.p[i] p[k++]=La.p[i++]; } else if(La.p[i]>=Lb.p[j]) P->p[k++]=Lb.p[j++]; } while(i<=La.Lenght-1){ P->p[k++]=La.p[i++]; } while(j<=Lb.Lenght-1){ P->p[k++]=Lb.p[j++]; } P->Lenght=k; } int main() { list La,Lb,Lc; Initlist(&La); Initlist(&Lb); Merge(La,Lb,&Lc); printf("合并结果为:n"); for(int i=0;i!=Lc.Lenght;i++){ printf("%d ",Lc.p[i]); } return 0; }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)