所以我正在为一个学校项目工作,我遇到了一个问题,当我在最后插入时,链表的头部正在改变,但我似乎无法确定我的代码中的哪个位置(显然它必须在我创建的processVector函数中发生。
我的想法是我有一个CSV文件,其中包含患者的信息。我使用fstream将CSV文件中的数据输入到患者的载体中。然后我尝试将向量列表中的每个元素转换为节点。最后,我尝试显示列表。
当我运行代码时,它会在每次添加新节点时显示更改的头部,但我的想法是我的代码将添加节点到最后,而不是开头。最终发生的是当我运行displayList时,它只运行一个显示最后一个节点内容的无限循环。
代码如下:
C
答案 0 :(得分:3)
问题是您每次通过for
中的processVector
循环重复使用同一节点。您已将head
设置为该节点,然后将其next
字段设置为指向自身,从而生成循环列表。
您每次都需要创建一个新的Node
。所以移动线:
Node<PatientType> *newNode = new Node < PatientType >;
进入for
循环。