请问下列程序在删除节点时一定要用pt指针吗
请问下列程序在删除节点时一定要用pt指针吗Status PolyDifferential(LinkedPoly &L){LinkedPoly p,q,pt;q=L;p=L->next;while(p!=L){if(p->data.exp==0){pt=p;p=p->next;q->next=p;free(pt);//为什么在删除这个结点时要先用pt指向它?}else{p->data.coef=p->data.coef*p->data.exp;p->data.exp--;q=p;p=p->next;}}return OK;}如果在删除结点时用p->next=q->next;free(q);q=p->next;代替pt=p;p=p->next;q->next=p;free(pt); 有什么不好?写错了是用q->next=p->next;free(p);p=q->next;代替
最佳回答
q->next=p->next; free(p); p=q->next;这里你把p释放了以后,p怎么还能指向下一个节点?所以你要多定义一个节点来表示待删除节点 1。我们必须知道对哪个链表进行操作,所以表头指针head是必须知道的。2。一般来说,待删除的结点是由结点的数据确定的。然而我们还要操作待删除结点之前的结点(或指针),以连接前后两段链表。3。令pGuard指针为待删除结点的前趋结点指针。由于要对待删除结点作内存释放,需要有一个指针p指向待删除结点。4。如果待删除结点为头结点,则我们要操作表头head,作为特殊情况处理。(你这里没有考虑)5。在删除结点的过程中,仍然要始终保持所有的结点都在我们的控制范围内,保证链表的完整性。为了达到这一点,我们还是采用先连后断的方式:先把待删除结点的前趋结点和它的后继结点连接,再把待删除结点与它的后继结点断开,并释放其空间。 再问: 先把前一个节点的next指向p的next 释放p指针所指地址后,这个指针不是还能用吗?所以它还可以指向新的p结点 保证链表的完整性有什么实际意义,先断开链表再接上有什么坏处? 再答: 你free(p)后怎么找到前一个节点?你的p就是用来找到待删除节点的前一个节点,如果不是就p->next再问: q存了p前面的结点,要删除p的话先用q->next=p->next 然后free(p), 之后p=q->next 这样也可以让p找到下一个节点 前一个节点用q来存 再答: q得到待删除节点,然后释放它所在的内存,你多看几遍书吧画一遍图,不然我怎么讲也没用
最新回答共有2条回答
-
2026-04-03 12:11:29柔弱的飞鸟
回复q->next=p->next; free(p); p=q->next;这里你把p释放了以后,p怎么还能指向下一个节点?所以你要多定义一个节点来表示待删除节点 1。我们必须知道对哪个链表进行操作,所以表头指针head是必须知道的。2。一般来说,待删除的结点是由结点的数据确定的。然而我们还要操作待删除结点之前的结点(或指针),以连接前后两段链表。3。令pGuard指针为待删除结点的前趋结点指针。由于要对待删除结点作内存释放,需要有一个指针p指向待删除结点。4。如果待删除结点为头结点,则我们要操作表头head,作为特殊情况处理。(你这里没有考虑)5。在删除结点的过程中,仍然要始终保持所有的结点都在我们的控制范围内,保证链表的完整性。为了达到这一点,我们还是采用先连后断的方式:先把待删除结点的前趋结点和它的后继结点连接,再把待删除结点与它的后继结点断开,并释放其空间。 再问: 先把前一个节点的next指向p的next 释放p指针所指地址后,这个指针不是还能用吗?所以它还可以指向新的p结点 保证链表的完整性有什么实际意义,先断开链表再接上有什么坏处? 再答: 你free(p)后怎么找到前一个节点?你的p就是用来找到待删除节点的前一个节点,如果不是就p->next再问: q存了p前面的结点,要删除p的话先用q->next=p->next 然后free(p), 之后p=q->next 这样也可以让p找到下一个节点 前一个节点用q来存 再答: q得到待删除节点,然后释放它所在的内存,你多看几遍书吧画一遍图,不然我怎么讲也没用
热门文章
- 康达学院专转本五年制
- 高考一个考场分ab卷吗
- not only but also用法
- 某物体做自由落体运动,从释放开始计时,则物体在前2s内的平均速度为______m/s,物体下落2m时的速度大小为______m/s.
- 三角函数公式大全表格
- 地理中考必背知识点2022
- 2013-2014学年小学六年级科学上学期期末考试试卷及答案
- 人教版2014-2015学年小学五年级英语第二学期期中教学质量检测试卷及答案
- 【Linux驱动开发】设备树详解(二)设备树语法详解
- 别跟客户扯细节
- 在别的城市买房子能落户吗
- 卖房前要把装修贷还完吗
- 高中政治教学提高教学效果的方法探究
- “互联网+”背景下的初中英语课堂教学改革与创新策略研究
- 2022年终止合同范本
- 租房合同范本范文
- 如何挑选土豆
- 如何挑选土鸡
