typedef struct node
{
int n;
struct node* next;
}
node;
在上面的代码中,struct node* next
中有struct node
。我不明白它的含义。
答案 0 :(得分:5)
在代码中
struct node* next
内有struct node
。一世 不明白它的含义。
说明:
节点是用于引用self referential structure的一般术语。(点击链接了解详情)
按定义进行,
自引用结构是一个典型的结构,其定义有一个或 更多的成员作为指向自己类型的指针。
这里的代码next
是结构struct node
的成员,它是指向它自己类型的指针,因此你将它看作是一个指向它自己的指针。 struct:
struct node* next;
这就是为什么 struct关键字在struct中使用
的原因目的使用自引用结构:
自引用结构非常有助于构建数据结构,例如linked lists ...实际上变量next
是有用的成员链接列表 :)
答案 1 :(得分:0)
struct node*
(注意*
)是指针(*
)到struct node
。这意味着一个节点可以通过指针连接到另一个节点,而不包括另一个节点。
这被称为“链表”结构。我找到了一个Stanford University tutorial,它看起来非常彻底地涵盖了这个主题。
答案 2 :(得分:0)
简单来说,它意味着next也可以与node的结构相同。所以接下来还会有一个字段int n和另一个next ..这也是动态的,所以你不必事先分配任何内存..你可以继续添加任意数量的节点(你仍然需要分配内存)到每个节点 - 搜索如何使用malloc为struct节点分配内存 因为它是指针类型(struct node * next),这意味着您可以将下一个节点的地址存储到它并链接节点。 请参阅链表实现以便更好地理解.. 我希望它有所帮助:)