C++链表:位于另一个节点内部的节点

C++ Linked List: Node inside of another Node

本文关键字:节点 内部 另一个 链表 C++      更新时间:2023-10-16

是否可以指向另一个节点中的节点:

struct Node{
    Node my_Node;
    Node *next;
};
int main(){
    Node *practice = new Node;
    practice -> next = &(practice -> my_Node);
    return 0;
}
struct Node{
    Node my_Node; // this is not allowed
    Node *next;
};

因为在c或c++中不允许创建不完整类型的变量。因为在这一点上,编译器不知道Node类型是什么以及需要多少空间?

您不能在Node中声明Node,首先它在该点上是一个不完整类型,其次它需要无限的空间来允许这一点(因为节点必须包含一个必须包含节点的节点等等…),这是不可能的。另一方面,您可以在Node中拥有一个Node *