在链表末尾插入无限循环

时间:2018-04-20 19:31:55

标签: c++ linked-list infinite-loop

所以我正在为一个学校项目工作,我遇到了一个问题,当我在最后插入时,链表的头部正在改变,但我似乎无法确定我的代码中的哪个位置(显然它必须在我创建的processVector函数中发生。

我的想法是我有一个CSV文件,其中包含患者的信息。我使用fstream将CSV文件中的数据输入到患者的载体中。然后我尝试将向量列表中的每个元素转换为节点。最后,我尝试显示列表。

当我运行代码时,它会在每次添加新节点时显示更改的头部,但我的想法是我的代码将添加节点到最后,而不是开头。最终发生的是当我运行displayList时,它只运行一个显示最后一个节点内容的无限循环。

代码如下:

C

1 个答案:

答案 0 :(得分:3)

问题是您每次通过for中的processVector循环重复使用同一节点。您已将head设置为该节点,然后将其next字段设置为指向自身,从而生成循环列表。

您每次都需要创建一个新的Node。所以移动线:

Node<PatientType> *newNode = new Node < PatientType >;

进入for循环。