在无序列表中添加节点

Adding nodes in an Unordered Linked List

我只想知道这两条线的区别。 listData 顺便提一下。

temp->next = listData;

listData = temp->next;

这是向无序列表添加节点的完整代码

NodeType* temp;
temp = new NodeType;
temp->data = item;
temp->next = listData;
listData = temp;
length++;

所以如果我改为 listData = temp->next temp->next = listData 会发生什么,或者有人可以用最简单的术语解释它的含义。每当我在右侧或左侧看到 -> 时,我都会感到困惑。谢谢!

-> 仅表示您正在访问指针引用,仅此而已。

当您看到等号时,这意味着右侧的内容已分配给左侧(除非您覆盖等号),您通常不会这样做。

  1. temp->next = listData

您正在将 listData 设置为 temp 的下一个。

  1. listData = temp->next

您正在将 temp 的 next 设置为 listData

由于您要将名为 temp 的节点添加到 LinkedList,因此您需要前者。考虑一个链表,您要在两个节点 AB 之间添加一个节点 temp。你会:

  1. A 的下一个设置为 temp

  2. temp 的下一个设置为 B

这个过程的最后一个就是temp->next = listData正在做的事情。 (我假设 listData 是链表的其余部分,包括 B.