#include<stdio.h>
#include<stdlib.h>
typedef struct LNode {
int data; // 数据域
struct LNode *next; // 指针域
} LNode, *LinkList;
void MergeLinkList(LinkList &La, LinkList &Lb) {
LinkList pa, pb;
pa = La->next;
pb = Lb->next;
LinkList pc = La;
while (pa&&pb)
{
if (pa->data <= pb->data) {
LinkList p = pa->next;
pa->next = NULL;
pc->next = pa;
pc = pc->next;
pa = p;
}
else {
LinkList p = pb->next;
pb->next = NULL;
pc->next = pb;
pc = pc->next;
pb = p;
}
}
pc->next = pa ? pa : pb;
while (La->next != NULL)
{
printf("%3d", La->next->data);
La = La->next;
}
printf("\n");
}
void CreateList_L(LinkList &L, int n) {
// 逆序输入 n 个数据元素,建立带头结点的单链表
L = (LinkList)malloc(sizeof(LNode));
LinkList p;
int t;
int k = 0;
int num[5];
for (int i = 0; i < 5; i++) {
printf("第%d个数据:\n", i+1);
scanf("%d", &num[i]);
}
for (int i = 0; i < 5 ; i++)
{
for (int j = 0; j< 5 - 1 - i; j++)
{
if (num[j] < num[j+1])
{
t = num[j];
num[j] = num[j+1];
num[j+1] = t;
}
}
}
L->next = NULL; //建立带头结点的单链表
for (int i = 5; i > 0; --i) {
p = (LinkList)malloc(sizeof(LNode));
p->data = num[k++]; // 输入元素值
p->next = L->next; L->next = p; // 插入
}
} // CreateList_L
void printList(LinkList &L) {
while (L->next!=NULL)
{
printf("%3d", L->next->data);
L = L->next;
}
printf("\n");
}
void printList1(LinkList &L) {
while (L->next != NULL)
{
printf("%3d", L->next->data);
L = L->next;
}
printf("\n");
}
int main()
{
LinkList L1,L2;
int a=5;
int b = 1;
printf("创建L1:\n");
CreateList_L(L1, a);
printf("L1结果如下:\n");
printList(L1);
printf("创建L2:\n");
CreateList_L(L2, a);
printf("L2结果如下:\n");
printList(L2);
MergeLinkList(L1, L2);
printf("合并结果如下:\n");
printList1(L1);
return 0;
}
求大佬解释为什么我的线性表合成之后输出来是空的
CreateList_L 和 printList方法里面,你不可以直接使用L,应该LinkList q = L;这样,然后操作p。
pc->next = pa ? pa : pb;
你这句话是不是想写成:
pc->next == pa ? pa : pb;
您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!
速戳参与调研>>>https://t.csdnimg.cn/Kf0y