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



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

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 *

相关内容

  • 没有找到相关文章

最新更新