严《数据结构》算法2.2(两个非递减有序的LA、LB归并(merge)为一个新的线性表LC)(结构体是个好东西)
//注意最后一行代码,需要借助指针得到c.len的值,否则,main()中的c.len会取随意值
#include<stdio.h>
#include<stdlib.h>
#define Size 100
struct array
//array结构体len代表使用的空间,而Initlist的Size是开辟的空间大小
{
int* p;
int len;
};
typedef struct array list,* listptr;
void Initlist(listptr ptr);//初始化结构体
void merge_array_ascend(const list a1,const list a2,listptr ptr);
//merge(合并)两个数组,结果用ptr保存
int main()
{
list a,b,c;
Initlist(&a);
Initlist(&b);
merge_array_ascend(a,b,&c);
for(int i=0;i!=c.len;i++){
printf("%d ",c.p[i]);
}
return 0;
}
void Initlist(listptr ptr)
{
printf("Input the len:");
scanf("%d",&ptr->len);
ptr->p=(int*)malloc(sizeof(int)*Size);
for(int i=0;i!=ptr->len;i++)
scanf("%d",&