假设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]结点的目的。
这就是链式存储结构通过修改存储地址的方式进行结点操作的核心方法;也是在线性表中最难学习的知识点。
我也是小白,个人结论,觉得有帮助请点个赞。
删除p节点
第二个写得有问题吧。按照意思的话 是令p等于p前面的节点。
用于删除结点p