算法(4th ed)(136):基础——背包、队列和栈 5.3.7

阅读数:9 2019 年 11 月 6 日 07:35

算法(4th ed)(136):基础——背包、队列和栈 5.3.7

(链表:遍历)

要访问一个数组中的所有元素,我们会使用如下代码来循环处理 a[] 中的所有元素:

复制代码
for (int i = 0; i < N; i++)
{
// 处理 a[i]
}

访问链表中的所有元素也有一个对应的方式:将循环的索引变量 x 初始化为链表的首结点,然后通过 x.item 访问和 x 相关联的元素,并将 x 设为 x.next 来访问链表中的下一个结点,如此反复直到 xnull 为止(这说明我们已经到达了链表的结尾)。这个过程被称为链表的遍历,可以用以下循环处理链表的每个结点的代码简洁表达,其中 first 指向链表的首结点:

复制代码
for (Node x = first; x != null; x = x.next)
{
// 处理 x.item
}

这种方式和迭代遍历一个数组中的所有元素的标准方式一样自然。在我们的实现中,它是迭代器使用的基本方式,它使用例能够迭代访问链表的所有元素而无需知道链表的实现细节。

评论

发布