问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C++链表遍历问题

发布网友 发布时间:2022-04-27 10:06

我来回答

2个回答

热心网友 时间:2023-09-11 14:51

delete head;
delete current;
delete end;

这三句显然有问题,你如果有一个节点的话,这3句都指向头节点,你删了3次,有2个以上的话,end和current指向同一个节点也会出错,而且如果节点多的话,你内存泄漏(没有删掉所有节点)
循环里面:i的初值不对,你输出的是i+1,初值应该为0 。条件temp->next!=NULL;不对,最后一个节点的next肯定为空,少输出一个节点,应该改为temp != NULL;追问node *temp;
while(head!=NULL)
{
temp=head;
delete temp;
head=head->next;
}
将释放内存改成这样后 还是显示错误

追答node *temp;
while(head!=NULL)
{
temp=head;
delete temp;
head=head->next;
}
你把temp删了也就是把head删了 怎么还能
head=head->next;

把这句话跟delete temp;换过来,改成
node *temp;
while(head!=NULL)
{
temp=head;
head=head->next;
delete temp;
}

热心网友 时间:2023-09-11 14:52

#include <iostream>
#include <string>
using namespace std;
struct node
{
int number;
string name;
node *next;
};
int main()
{
node *head=NULL;
node *end=head;
node *current;
char c='y';
do
{
if(head==NULL)
{
head=new node;
cout<<"创建头结点中..."<<endl;
cout<<"请输入编号:";
cin>>head->number;
cout<<"请输入命名:";
cin>>head->name;
head->next=NULL;
current=head;
}
else
{
cout<<"您是否需要继续添加结点(y/n):";
cin>>c;
if(c=='y')
{
current=new node;
cout<<"请输入编号:";
cin>>current->number;
cout<<"请输入命名:";
cin>>current->name;
current->next=NULL;
end->next=current;
}
else
{
cout<<"正在跳转..."<<endl;
}
}
end=current;
}while(c=='y');
cout<<"请查看您新建立的信息库"<<endl;
int i=1;

for(node *temp=head;temp!=NULL;temp=temp->next) // 这里的temp->next != null 改为 temp !=null 才会正常输出
{
cout<<"第"<<i+1<<"位 信息如下:"<<endl;
cout<<"编号"<<temp->number<<endl;
cout<<"命名"<<temp->name<<endl;
++i;
}
delete head;
delete current;
//delete end; // 这里没必要delete end 因为end不是new所获的内存, 系统会自动回收
return 0;
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
抖音弹幕怎么关掉?怎么关闭抖音弹幕? 惠普LaserJet P3005D是否支持B5纸的双面打印? word打印出图片总是缺一部分怎么办-word打印图片不完整怎么解决_百度... 理想one哪里产的车辆? 抚州抚州ONE在哪里? one地址在哪里? 如何在图片上写字(如何在图片上添加文字) 网商贷为什么钱没到账 高级经济师职称怎么评 高级经济师需要评审吗 求几个好玩的单机游戏!! c语言,求代码,函数链表遍历,如图? 如何利用链表遍历器实现链表反序输出。说一说思路就行 链表遍历为什么没有数据输出,输出的是空间地址? cout &lt;&lt; endl; } 什么是链接普遍性 数据结构链表遍历C语言 “好内远礼曰炀,去礼远众曰炀,逆天虐民曰炀,好大殆政曰炀,薄情寡义曰炀,离德荒国曰炀”是什么意思? “东边日出红彤彤,众生万物得光明;泽被苍生广施德,终会耀祖又光宗。”是什么意思? 南京莱克施德药业有限公司怎么样? ZBrush里面有没有直接删除MASK选区的功能? 施组词有哪些词语 zbrush中用z球摆好造型后怎么删除z球 上海众德农产品专业合作社怎么样? 怎样快速隐藏Zbrush 4R7 P3中各类模型 立身不求无患 身无患则贪欲必生是什么意思 我前年用红白机玩fc的宇宙战将,玩到皇帝弄龙卷风那电池没电了,郁闷…所以我问问后面的剧情,谢谢。 如何删掉Zbrush中模型的部分面 关于复修老祖坟墓功德碑对联请大家给予修正上联,施德建坟承先启后千秋颂,下联,存厚修墓继往开来历代扬 Zbrush 遮罩挤出后,如何删除被遮罩的面 厦门施德正泰电器有限公司怎么样? ykk拉链普遍寿命多少次 C++链表遍历出问题了。 荷荷巴油碳链长度 猜疑链是普遍存在的,还是需要在条特定件下才能实现的 微信被卸载了怎么恢复原状? 微信如何恢复? 微信坏了,怎么恢复 幕墙设计图纸需要注册结构工程师盖印章 幕墙设计中CSD,PSD MSD FSD PD 图分别是什么定义的图纸? 幕墙设计图纸需不需要注册结构工程师加盖印章 幕墙设计图纸是否需要第三方审图啊? 蓝牙耳机没声音怎么修理 请问幕墙设计中的投标图图纸与施工图图纸有什么不同? 玻璃幕墙的设计图怎么做 幕墙设计图 蓝牙耳机充电插口坏了可以修理吗 谁有幕墙设计图纸 我用的是无线蓝牙耳机,本来是能用挺好的,但是过一段时间连不上蓝牙 玻璃幕墙设计图第一步要画什么啊 我的Ipad 2 蓝牙无线键盘有些按键换了,按了没有反应,怎么修理??