数据结构的小问题 p->prior->next=p->next和p->next->prior=p->prior是什么意思?

如题所述

假设p指的是a[i]结点的存储地址,分析语句:
第一条语句:
p->priot->next是指结点a[i-1]next指针域
p->next是指结点a[i+1]的存储地址
第一条语句的含义是将a[i-1]的next指针指向a[i+1]存储地址
第二条语句:
p->next->prior是指结点a[i+1]的prior指针域
p->priot是指结点a[i-1]的存储地址
第二条语句的含义是将a[i+1]的prior指针指向a[i-1]的存储地址
最后结果:
a[i-1]的指针域:
next指针->a[i+1]
prior指针->a[i-2](没动)
a[i+1]的指针域:
next指针->a[i+2](没动)
prior指针->a[i-1]
换句话说:
a[i-1]的下一个结点(直接后继)是a[i+1],上一个结点(直接前趋)是a[i-2];
a[i+1]的下一个结点(直接后继)是a[i+2],上一个结点(直接前趋)是a[i-1];
这么操作,a[i]就没了,从而实现删除a[i]结点的目的。
这就是链式存储结构通过修改存储地址的方式进行结点操作的核心方法;也是在线性表中最难学习的知识点。
我也是小白,个人结论,觉得有帮助请点个赞。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-01-13
删除p节点
第二个写得有问题吧。按照意思的话 是令p等于p前面的节点。本回答被提问者和网友采纳
第2个回答  2014-01-13

第3个回答  2014-01-13
用于删除结点p追问

大侠,本人c语言学的不好,能够详细解读一下吗?

追答

首先你知道p->prior是什么意思吗?

追问

不太清楚,能说一下吗,要详细的~

追答

那就有些难啊。要想解释清楚什么叫"爷爷",首先你自己得清楚什么叫"爸爸",不是吗。

追问

好吧,谢谢~

相似回答