【发布时间】:2013-05-08 00:33:12
【问题描述】:
我很难理解 C 中链表中的节点的某些内容。我在纸上得到了 6 个节点的列表,我试图画出在几组不同的命令后节点是如何变化的。列表开始如下(如果一个节点被命名,名称就列在它之前):
head[2, link]-->[4, link]-->P[6, link]-->[7,link]-->Q[8, link]-->R[9,链接为空]
第一组命令:
R->link = Q;
head->item = 11;
P = P->link;
head[11, link]-->[4, link]-->[6, link]-->P[7,link]-->Q[8, link]-->R[9,链接]-->问
这是我的第一个问题:当您将 R->link 分配给 Q 时,它是否只是围绕自身指向 Q 节点?
第二组命令:
P->item = head->item;
Q = NULL;
P = (P->link)->link;
head = R;
[11, link]-->[4, link]-->[6, link]-->[11,link]-->Q[NULL?]-->PR Head[9, link] -->Q 为空?
第二个问题:Q节点中的null值究竟是什么?它的链接会消失吗? P = (P->link)->link 设置为null后如何沿其链接移动?现在 Q 为空,R 也指向什么?
我创建节点的代码如下:
#include <stdio.h>
#include <stdlib.h>
typedef int item_t;
typedef struct node node_t;
typedef node_t* pointer_t;
struct node{
item_t item;
pointer_t link;
};
int main(void){
pointer_t head, P, Q, R;
head = malloc(sizeof(node_t));
head->item = 2;
【问题讨论】:
标签: c null linked-list