C++ C++;链表:另一个节点内的节点

C++ C++;链表:另一个节点内的节点,c++,list,pointers,linked-list,nodes,C++,List,Pointers,Linked List,Nodes,是否可以指向另一个节点中的节点: struct Node{ Node my_Node; Node *next; }; int main(){ Node *practice = new Node; practice -> next = &(practice -> my_Node); return 0; } 因为在C或C++中不允许创建不完整类型的变量。因为在这一点上,编译器不知道什么是节点类型以及需要多少空间?您不能在节点中声明节点

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

struct Node{
    Node my_Node;
    Node *next;
};

int main(){
    Node *practice = new Node;
    practice -> next = &(practice -> my_Node);

    return 0;
}

因为在C或C++中不允许创建不完整类型的变量。因为在这一点上,编译器不知道什么是

节点
类型以及需要多少空间?

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

此代码是错误的。您不能在其内部声明节点(即my_节点),我可以使用typedef来避免吗?我认为不可以。在结构/类中,您只能声明指向结构/类本身的指针。您认为为什么需要这样做?你认为它能解决什么问题?见:出于不切实际的原因。我只想知道C++发生了什么。有没有其他方法可以在类中拥有无限的类序列?如果我在节点上使用typedef,我可以设法绕过它吗?@user3007077:你怎么可能认为typedef会允许你创建无限的嵌套节点堆栈?@user3007077这对你没有帮助,就像Beta所说的,你们不可能有一个无限嵌套,正如Benjamin所问的,你们试图解决的问题是什么,一个指向节点的指针并没有帮助?
struct Node{
    Node my_Node; // this is not allowed
    Node *next;
};