链表的删除 我删除编号为1的图书直接崩溃

自己用C语言写的双链表代码 (没看书) ,不知是否有错 或者 不规范的地方 请指出_百度知道
自己用C语言写的双链表代码 (没看书) ,不知是否有错 或者 不规范的地方 请指出
%d&quot,&n);%d&data =n\}!=n-1)
p-& return 0;data);;\ } h-&n&data);next = NULL;last)
printf(&n\int main(void){ struct list*),p = p-&last = NULL; p = h!=0)
p-&gt.h&gt,p-&%d\t& struct list*last = p-1;data);next)
printf(&i&t&quot,p-& scanf(&next = p+1; printf(&%d&;;; printf(&%d\ p = h = (struct list*)malloc(sizeof(struct list)*n),n; printf(&quot,p = p-&gt,p-&gt.h&# include & while(p-& for(i=0; while(p-&
if(i,p++) {
p-&;n\ struct list*n\struct list{data); struct list* next,p-&i++; (p-1)-&n# include &lt
提问者采纳
p = p-&gt,p-&gt,从左往右算的。链表可以写写中间插入或者删除一个元素,while(p-&data);t&quot。另外,这个比较好玩一点;%d&#92,没有问题;last。然后把这些操作都封装到函数里面去,建议命名不要用
逗号运算符是为了节约括号吗;last)
printf(&没什么错误
提问者评价
太给力了,你的回答完美解决了我的问题!
来自团队:
其他类似问题
为您推荐:
双链表的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁使用单链表建立一个简易图书借阅表。每个记录包括:图书编号、名称、借阅次数。要求:_百度知道
使用单链表建立一个简易图书借阅表。每个记录包括:图书编号、名称、借阅次数。要求:
(2)查找借阅次数最多和最少的图书记录、名称,显示其编号。(3)在指定图书结点之前插入一新的结点,并返回成功与否的标志(1)建立n个结点(结点数据域的值由键盘输入)构成的单链表
提问者采纳
while(now)
head-&请输入借书次数;i:&&&GetData()-&}D&lt:;}void N } else {
Node *now=GetBorrow()&lt:ShowMix()const{ Node *node=head-&&}int Dstring& void Insert(int id);iostream&gt:;说明; next=NULL:Data(&&&&quot:&quot:ShowMax()const{ Node *node=head-& cout&lt:;&GetData()-&#include &t借阅次数为:;/t书名\ while(node) {
cout& int GetId() } cout&}class List{&&GetData()-&编号
l-&L尾结点};}/ void ShowMax()请输入编号; Node* GetNext()&GetNext();Show(); if(; l-& cout&lt:SetNext(Node *n){ next=n;&GetData()-&&ShowMax();& l-&&lt:;
node-&GetId()==id)
}N l-&&/D void SetId(int i);&#47:&&lt:Show()const{ Node *node=max-&gt,保存结点的信息我用c++写的,b):GetName()const{ return name,node为结点类;GetId()&& Node(Data *d);GetData()-&gt:Node(Data *d){ data=d;N}void D Data* GetData()const,int b){ id=i://\t借阅次数&quot,把代码发给你;SetNext(head):;&&& Data(/ void SetName(string n); string GetName()}class Node{GetId()&lt: Node *SetNext(node): Node();GetData()-&&t&Insert(2);}string DGetData()-&GetNext();GetName()&GetData()-&GetName()&}void N&&lt:; cin&借阅次数最多的图书信息如下;&gt:SetBorrow(int b){ borrow=b:data类为数据类;Show(); void Show() name=n:,按你的要求写的;n;Insert(2);&&ID;node-&node-&SetNext(NULL):;下一结点};t& } cout&}void L& void SetBorrow(int b);&}void L&\&&t图名为; borrow=0;
node=node-&&quot:
Node *node=new Node(d);using namespace std:,list为链表类,保存图书的基本信息;;endl。不懂的可以留言(www,就不发你邮箱了;SetNext(now);&#47:; next=NULL;node-&gt.&max-&gt:Node(){ data=NULL;max-&gt:Insert(int id){ &quot:Data(){ id=0;}void Data
程序中,常用的函数,以及头文件之类的是不是和tc一样?
提问者评价
非常的感谢
来自团队:
其他类似问题
为您推荐:
单链表的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁链表 我删除编号为1的图书直接崩溃_百度知道
链表 我删除编号为1的图书直接崩溃
} while(p1-&&lt,操作失败;&num&&endl!&num=atoi( p2=p1;next=l-&gt,操作失败,操作失败;& cin&&
&lt,以0退出&&&
} } delete p1; } p1-&
cin&num==num)
l=&str!=0) {
cout&price=atof( while(cheak(str)==false) {
cout& } p1-&&
cin&&&&head-&&图书的价格;
cout&操作成功;&请输入图书的价格&
while(head)
delete l,int num){ book *l!&&图书信息如下&&&num==num)
l=head-&&&
cin&&&& while(cheak(str)==false) {
p2-&&&next==NULL)
cout&&请输入0到9的数字&quot.c_str());
head-&&next=NULL; ;&head-&&找不到该数;endl! &' book *p1;
cin&请输入0到9的数字&
head=head-&
while(cheak(str)==false)
:;请输入0到9的数字&next=p1;&p2-&gt.c_str());&请输入图书的编号;next:&
cout& } else {
delete p1;请输入图书的价格&num=atoi(&&&&&&&
return.c_str());}void showbook(book *head){ cout&
cin&&lt!&price&lt:&
p1-&&&next=NULL;&endl!=0)
cout&&&&lt,*p2;
while(cheak(str)==false)
cout& if(head==NULL) {
cout&&&p2=NULL;&&&&
if(head-& cout&str!=0) {
head=head-&&lt!&请输入图书的编号; p1=&t'& if(p1-&&&&\ head=p1.c_str());&next-&操作成功; cout&图书的编号,以0退出& }}void Delete(book *请输入0到9的数字&找不到该数; }
if(head-&& while(head) {
cout&&&&该链表为空;head=NULL;price=atof(&& p2-&gt:head=head-&&ltbook* creat(){ string str
next==NULL)肯定就报错了;
::head=head-&gt。while(head)if(head-&
head指向的对象已经用delete l释放掉了l=head
好像并不是
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁}

我要回帖

更多关于 单向链表删除节点 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信