C语言数据结构问题,合并升序排列的静态链表,希望能加点注释qwq

2025-03-20 09:41:41
推荐回答(1个)
回答1:

/*这个问题用c++实现比较简单,这里就先不说了。我给你一个用c实现的,毕竟c的可以在c环境和c++环境通用。下面是代码:*/
#include
#include
int main()
{
int N,M;
scanf("%d %d",&N,&M);
int i;
int *list1=(int*)malloc(N*sizeof(int));
for(i=0;iint *list2=(int*)malloc(M*sizeof(int));
for(i=0;iint *list3=(int*)malloc((N+M)*sizeof(int));
int *p=list1,*q=&list2[M-1];
for(i=0;i<(N+M);i++)
{
if(p<=&list1[N-1]&&q>=list2)
{
if(*p>=*q)
{
list3[i]=*p;
p++;
}
else
{
list3[i]=*q;
q--;
}
}
else if(p>&list1[N-1]&&q>=list2)
{
list3[i]=*q;
q--;
}
else if(q{
list3[i]=*p;
p++;
}
}
for (i=0;iprintf("\n");
return 0;
}
//如果觉着还行的话随便给加点分就好了,我们也好说话