C++ 我可以将第三行中的节点更改为node_new或其他内容吗?
这是用于在链表中定义结构的代码。我们可以用node_new*next或其他东西替换第三行中的node*next吗 我们可以将第三行中的C++ 我可以将第三行中的节点更改为node_new或其他内容吗?,c++,data-structures,linked-list,C++,Data Structures,Linked List,这是用于在链表中定义结构的代码。我们可以用node_new*next或其他东西替换第三行中的node*next吗 我们可以将第三行中的node*next替换为node\u new*next或其他内容吗 保持结构的其他部分不变,不会,因为它无法实现您可能想要的 您需要了解结构的含义: struct node { int data; node *next; }; 你可以。但现在它不再指向另一个节点。我怀疑的是,我觉得它本身就是某种递归。我们正在定义包含一些数据和指向节点本身的指针的结构节点。这怎么
node*next
替换为node\u new*next
或其他内容吗
保持结构的其他部分不变,不会,因为它无法实现您可能想要的
您需要了解结构的含义:
struct node
{
int data;
node *next;
};
你可以。但现在它不再指向另一个
节点
。我怀疑的是,我觉得它本身就是某种递归。我们正在定义包含一些数据和指向节点本身的指针的结构节点。这怎么可能?它不是递归的。一旦知道对象类型的名称,就可以创建指向对象的指针。定义甚至不需要出现<代码>结构节点;节点*p=nullptr代码>是完全有效的。这里也是一样。用谷歌搜索一下“不完整类型”。它们不能用作自身,但允许使用指向它们的指针。正如您所做的,它通常是这样做的(即使是在C中)。如果有两个struct
s相互引用,“转发声明”有助于生成“不完整类型”。
struct node // this is the type of the node
{
int data; // data of node
node *next; // pointer to the next node (thus the type has to match)
};