门户网站ui设计,课程资源网站的建设,网站建设规定,长沙人才appc语言实现两个有序链表的合并#xff1a;现有两个有序单链表#xff0c;通过代码实现将两个单链表合并为一个有序的新表#xff0c;要求使用旧表的空间#xff0c;不能新分配内存#include #include typedef struct List{ int a; struct List *next;}list;void newLis… c语言实现两个有序链表的合并现有两个有序单链表通过代码实现将两个单链表合并为一个有序的新表要求使用旧表的空间不能新分配内存#include #include typedef struct List{ int a; struct List *next;}list;void newList(list *l){ //初始化头节点 l-next NULL;}void setList(list * l){ //建立链表 int i 1; int j; while (i) { scanf_s(%d, j); if (j -1) { i 0; } else { list *l1 (list *)malloc(sizeof(list));//为新的结点分派内存 l1-a j;//储存数据 /* 将最后结点的next区域指向新结点 将新结点的next区域指向设置为空 */ l-next l1; l1-next NULL; l l-next; } }}void printfList(list *l){ printf(该链表内容为\n); while (l-next) { printf(%d\t, l-next-a); l l-next; } printf(\n);}list *add(list *LA, list *LB){ //记录两个链表的头结点 list *laLA; list *l LA; list *lb LB; //移动指针 LA LA-next; LB LB-next; la-next NULL; while (LA!NULLLB!NULL) { /* 将两个结点的数据进行比较数据较小的结点接在头结点后面 */ if (LA-a LB-a) { la-next LA; la LA; LA LA-next; } else { la-next LB; la LB; LB LB-next; } } //若其中一个链表的结点已经全接在新表中则将另一个链表的剩余结点接在新表的后面 if (LA) { la-next LA; } if(LB) { la-next LB; } free(lb); return l;}int main(){ //为结点分配内存 list *LA (list *)malloc(sizeof(list)); list *LB (list *)malloc(sizeof(list)); //初始化结点 newList(LA); newList(LB); //建立链表 setList(LA); setList(LB); //输出链表的内容 printf(LA的数据:\n); printfList(LA); printf(LB的数据:\n); printfList(LB); list *LC add(LA, LB); //输出合并后的新表 printfList(LC); system(pause); return 0;}声明本文于网络整理版权归原作者所有如来源信息有误或侵犯权益请联系我们删除或授权事宜。