关淳 2022-10-08 15:01 采纳率: 73.9%
浏览 36
已结题

删除A链表中B链表与C链表的交集元素 A,B,C都是递增链表

A.B.C 为递增有序线性表,删去A中即在B出现也在C出现的元素。
为啥啥也输出不出来啊

#include <bits/stdc++.h>
using namespace std;

typedef int LLDataType;

typedef struct LinkList {
LLDataType data;
struct LinkList* next;
}Link;

void CreateLinkList (Link* &head, int n)
{
head = (Link*)malloc(sizeof(Link));
head->next = NULL;
Link* tail = head;
while (n--)
{
Link* a = (Link*)malloc(sizeof(Link));
a->next = NULL;
scanf("%d", &a->data);
tail->next = a;
tail = a;
}
return;
}

void IntersectionDelete (Link* &L, Link* L2, Link* L3)
{
Link* L1 = L;
while (L2 && L3)
{
if (L2->data == L3->data)
{
while (L1)
{
if (L1->next->data == L2->data)
{
Link* del = L1->next;
L1->next = L1->next->next;
free (del);
}
else L1 = L1->next;
}
L2 = L2->next;
L3 = L3->next;
}
else if (L2->data < L3->data)
L2 = L2->next;
else
L3 = L3->next;
}
return;
}

void LinkListPrint (Link* L)
{
Link* L1 = L->next;
while (L1)
{
printf ("%d ", L1->data);
L1 = L1->next;
}
puts ("");
}

int main ()
{
Link *La, *Lb, *Lc;
int na, nb, nc;

cout << "请输入表A的长度\n";
cin >> na;
cout << "请输入表A\n";
CreateLinkList (La, na);

cout << "请输入表B的长度\n";
cin >> nb;
cout << "请输入表B\n";
CreateLinkList (Lb, nb);

cout << "请输入表C的长度\n";
cin >> nc;
cout << "请输入表C\n";
CreateLinkList (Lc, nc);

IntersectionDelete (La, Lb, Lc);
cout << "删除Lb和Lc交集元素的La为\n";
LinkListPrint (La);

return 0;
}

  • 写回答

2条回答 默认 最新

  • 於黾 2022-10-08 15:12
    关注

    你先好好看看自己的代码到底实现了个什么功能
    你要想找B和C的交集,好歹要写个双重循环两两比较吧,只循环一次能找到重复的数据才怪,除非你事先已经把B和C都排好序了,可是并没有执行排序的函数,也没有调用类似的函数
    其次,在调用一大堆自己看的懂的或者看不懂的函数之前,先打印,看能不能正确的输出链表A,如果连这一步都没法输出,不要着急搞一大堆函数

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月16日
  • 已采纳回答 10月8日
  • 修改了问题 10月8日
  • 创建了问题 10月8日

悬赏问题

  • ¥15 前端echarts坐标轴问题
  • ¥15 CMFCPropertyPage
  • ¥15 ad5933的I2C
  • ¥15 请问RTX4060的笔记本电脑可以训练yolov5模型吗?
  • ¥15 数学建模求思路及代码
  • ¥50 silvaco GaN HEMT有栅极场板的击穿电压仿真问题
  • ¥15 谁会P4语言啊,我想请教一下
  • ¥15 这个怎么改成直流激励源给加热电阻提供5a电流呀
  • ¥50 求解vmware的网络模式问题 别拿AI回答
  • ¥24 EFS加密后,在同一台电脑解密出错,证书界面找不到对应指纹的证书,未备份证书,求在原电脑解密的方法,可行即采纳