【发布时间】:2020-08-14 20:16:21
【问题描述】:
我无法理解某些内容:
typedef struct {
int info;
struct node* next;
} node;
int main() {
node* head = NULL; /*here*/
node* second = NULL;
node* third = NULL;
那行node* head = NULL; 是做什么的?它是否初始化了一个名为 head 的新 node?那为什么* 在那里,我的结构是typedefd 就像node 所以在其他情况下处理数据结构时,我应该在这种情况下使用node head = NULL。
在这段代码的后面,我有
head = (struct node*)malloc(sizeof(node));
我猜它为该节点分配空间。而这部分
head->info = 1;
head->next = second;
设置头节点的数据和指针部分。我理解正确吗?
【问题讨论】:
-
你知道指针吗?
-
在实现链表之前,您需要对指针有很好的理解。您可能想退后一步,阅读它们,然后重新审视这个问题。
-
花时间先熟悉基础知识,而不是一头扎进“竞争性编码”。有很多不错的C参考书和入门课程值得使用。
-
刚开始竞争编码 + 学习链接列表 == 慢动作火车残骸。即使在专业人士中,C 语言中的链表也永远是令人头疼的问题。退后一步,真正研究指针。
-
简短回答 - head 被设为 NULL,因为它指向一个空列表。当项目被创建然后添加到这个列表中时,它将更新为指向指针列表的开头。
标签: c linked-list