我是数据结构和算法的新手。我遇到了以下代码
typedef struct node
{
int data;
node *next;
};
任何人都可以告诉我为什么我们接下来宣布节点*?不能*下一个被声明为int * next?
答案 0 :(得分:11)
因为您希望能够n->next->next->next...
等等。
next
需要指向另一个node
,而不是int
,否则您将无法在此之后看到下一个int
(您无法做到(aInt)->next
{1}},你呢?)!
您可以将node
视为包含int
(或任何其他数据)的小方框,以及对下一个小方框的引用。如果您直接指向数据,那么之后您将无法获得该框(这只是愚蠢的数据!) - 您需要指向框(node
s)!
这是一张图片,可能有助于了解我的意思(积分转到Virginia Tech):
答案 1 :(得分:1)
你可以,但它不会帮助你写一个链表。 node *next
确保您有一个变量next,它是指向node
的指针。 int *next
表示接下来会指向一个整数,而不是node
,不会为您提供链接列表,这就是您正在寻找的内容。