List C++;链表:可变问题
我用它来插入数据List C++;链表:可变问题,list,c++11,List,C++11,我用它来插入数据 struct List { Post *p; //a random class List *next; }; 为什么这不起作用 对不起,我的英语不好,如果这太容易的话。。再次感谢问题1: 在while循环中,您重复whilehelp不是NULL,因此当help是NULL时,您将离开while循环。您希望保留列表中的最后一个节点。最后一个节点是help->next==NULL的节点。因此,while循环应该如下所示: List *help; hel
struct List
{
Post *p; //a random class
List *next;
};
为什么这不起作用
对不起,我的英语不好,如果这太容易的话。。再次感谢问题1:
在while循环中,您重复whilehelp
不是NULL
,因此当help
是NULL
时,您将离开while循环。您希望保留列表中的最后一个节点。最后一个节点是help->next==NULL
的节点。因此,while循环应该如下所示:
List *help;
help=(*leaf)->start; //leaf is a node where is the start of the list
while(help!=NULL)
help=help->next;
help=new List;
help->p=new Post()
help->next=NULL
问题2:
当您设置help=newlist()时代码>您丢失了对列表中最后一个节点的引用<代码>帮助
现在包含新的列表
实例,但不能将其设置为链接列表中最后一个元素(在while循环中搜索的元素)的下一个
条目
因此,您可以继续:
while (help->next != NULL)
help = help->next;
注意:您应该使用大括号编写while循环,否则您可能会混淆代码的哪部分是循环的一部分,哪部分不是循环的一部分。最终,这是一种个人风格,但我建议初学者:
help->next = new List(); // allocate node and set it as next
help = help->next; // now you can set help to the new node
help->p = new Post();
help->next = NULL;
while (help->next != NULL) {
help = help->next;
}