gpt4 book ai didi

c++ - 删除双向链表中的项目

转载 作者:行者123 更新时间:2023-11-28 07:13:53 24 4
gpt4 key购买 nike

我的程序应该执行 3 个操作:1.insert 2.delete 3.show 使用双向链表...我在 delete 函数中遇到问题。这是代码:

void List::del()
{
int num;
Node *Aux1=first;
Node *Aux2=NULL;
if(isempty())
cout<<"List is Empty!"<<endl;

else
{
cout<<"Enter the number that you want to DELETE:"<<endl;
cin>>num;
while(Aux1->info!=num && Aux1 != NULL)
{
Aux2=Aux1;
Aux1=Aux1->left;
}
if(Aux1!=NULL)
{
if(Aux2!=NULL)
{
if(Aux1->left==NULL)
Aux2->left=NULL;
else
{
Aux2->left=Aux1->left;
Aux1=Aux1->left;
Aux1->right=Aux2;
}
}
else
{
first=Aux1->left;
//first->right=NULL;
}
}
system("pause");
}
}

在删除功能中,我想找到用户想要删除的号码,然后将其从列表中删除...问题是当用户输入列表中不存在的号码时!!在这种情况下,我希望我的程序不对列表做任何事情,也不从列表中删除任何项目。但是当它发生时,我遇到了这个错误:

App Crash Window

我的代码有什么问题? ;-?

最佳答案

您的 while 循环在检查它是否为 NULL 之前取消引用 NULL 指针。您需要将循环更改为:

while(Aux1 != NULL && Aux1->info!=num)

关于c++ - 删除双向链表中的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20546745/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com