c语言循环双链表每个节点的地址指的是什么?

c语言循环双链表每个节点的地址指的是什么?按照首地址来说的话,应该就是prior域的地址了?我这么理解对不?... c语言循环双链表每个节点的地址指的是什么?按照首地址来说的话,应该就是prior域的地址了?我这么理解对不? 展开
 我来答
BB919379706
2017-08-18 · TA获得超过186个赞
知道小有建树答主
回答量:107
采纳率:0%
帮助的人:76万
展开全部
  p←1→n
4       2
   3


这么说,希望你能理解,现在有4个节点的循环双链表1、2、3、4

每个节点的地址就相当于这四个节点所在的位置。

每个位置存储3个信息,data和两个指针。

比如节点1,它有data,p指针和n指针,p指针就指向4所在的位置,n就指向2所在的位置,同样节点2也有一个data和两个指针,它的p指向节点1所在的位置,n指针指向节点3所在位置……

这里把节点的地址比作节点所在的位置,实质上地址就是这个节点存储的3个信息在计算机内存上的位置。

更多追问追答
追问
我还是不懂,比如说至少这个单独的节点应该是一个连续存储空间是吧,只要是连续存储空间。那就可以用首项地址作为该节点的地址啊。那为啥该节点地址改不是这prior域的地址呢
追答
在单独的节点里面是连续存储空间。 如果这个节点是A 结构体,那么一个A*指针指向它,存储的是它的首地址。 但这首地址不一定是prior的地址,比如A里有a,b,c三个值,可能a在前面,也可以b,或者c,具体哪个在前面,应该是定义在最前面的那个。 如果prior定义在最前面,首地址相同。但prior指针和A指针不能相等,数据类型不同嘛
单眼皮大鼻子
2017-08-18
知道答主
回答量:39
采纳率:0%
帮助的人:10.8万
展开全部
#include <stdio.h>

struct TNode

{
TNode pre;
TNode next;
int seq;
};
int main()
{
TNode pNode[5], temp;
int n = 5, i = 0;
//链表初始化

for (i; i < n; i++)
{
pNode[i].next = pNode[i+1];
if ( i != 0)
{
pNode[i].pre = pNode[i-1];

}

pNode[i].seq = i;

}
// 链表节点交换,交换3和4
temp = pNode[3];
交换,再将3的前和后,4的前和后重新赋值

return 0;

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式