p!=NULL与p->next!=NULL区别?

p!=NULL与p->next!=NULL区别?当用循环后(p=p->next),当p指向最后一个节点时,若使用判断语句判断p!=NULL与p->next!=NULL,此... p!=NULL与p->next!=NULL区别?
当用循环后(p=p->next),当p指向最后一个节点时,若使用判断语句判断p!=NULL与p->next!=NULL,此时哪个语句再起作用?它们有啥区别啊?
展开
 我来答
_whales
推荐于2017-09-14 · TA获得超过2281个赞
知道大有可为答主
回答量:1814
采纳率:85%
帮助的人:543万
展开全部
都起作用,前一个,p就是尾结点,后一个p是尾结点的前一个结点,单链表需要找到前一个结点,才能插入和删除,双链表找到结点本身就可以插入和删除,修改数据的话,找到结点本身最好!链表是存储数据的,数据才是程序要用的,链表只是数据存放的手段!只所以会有各种数据结构,是数据的组织方式要求的,各种数据结构相关的算法,都是为使用数据服务的!
时光有张不老顔
推荐于2017-09-12 · TA获得超过2463个赞
知道小有建树答主
回答量:357
采纳率:66%
帮助的人:40.3万
展开全部
在C/C++中,遍历到最后一个节点时,p->next == NULL,但是 p->data,即数据域里还是有数值的,所以此时 p! =NULL。虽然NULL在Java和PHP中写作null,但是,数据结构和具体语言是无关的,这个道理在Java和PHP中也是一样的,p->next只是p的一部分,p->next为null,并不代表p为null
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
一剑出血
高粉答主

2015-05-30 · 醉心答题,欢迎关注
知道大有可为答主
回答量:5.7万
采纳率:78%
帮助的人:1.8亿
展开全部
前者是判定p指针本身是否为空,
后者是判定p指向的结构中的next元素是否为空。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
598243057
2020-12-23 · TA获得超过425个赞
知道小有建树答主
回答量:286
采纳率:100%
帮助的人:78.4万
展开全部
关于循环条件p!=NULL和p->next!=NULL
1)p!=NULL最后p指向最后一个结点的下一个位置,还未能开始此位置上的操作,但是前一次操作是在最后一个结点完成的,所以可能越界。最后一次循环(执行了操作)中,在p=p->next之前的操作是在最后一个结点上的操作,在p=p->next之后的操作是在最后一个结点下一个位置的操作。此循环条件下不能设置如p->next->data等越界操作
2)p->next!=NULL最后p指向最后一个结点,还未能开始最后一个结点上的操作。最后一次循环(执行了操作)中,在p=p->next之前的操作是在倒数第二个结点上的操作,在p=p->next之后的操作是在最后一个结点上的操作
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式