2014-10-30 51 views
0

最近我有一个Java软件开发人员的采访和面试官问了我一些,据我,愚蠢的问题。其中之一是如果你有e链表,如何找到链表中是否存在循环。现在我的问题不是如何检查周期,但是,我需要一个真正的例子,当这个问题将会产生,我什么时候需要检查开发java web应用程序的列表?什么时候需要检查链接列表循环?

+0

我用一个旋转缓冲区我的一个项目。该缓冲区存储在一个数组中,并使用花哨的光标跟踪进行旋转,但它也可以作为循环缓冲区来实现。 – Adam 2014-10-30 07:46:45

+0

看看这个问题,它似乎与你所问的相似,并且在答案中有例子。 http://stackoverflow.com/questions/494830/how-to-determine-if-a-linked-list-has-a-cycle-using-only-two-memory-locations – guribe94 2014-10-30 07:47:25

+0

你的意思'cycle'什么? – Babel 2014-10-30 07:48:52

回答

0

链表是最简单和最常见的数据结构中。它们可以被用来实现一些其他常见的抽象数据类型,包括列表(抽象数据类型),栈,队列,关联数组和S-表情,虽然这种情况并不少见,直接实现另一个数据结构不使用列表作为实施的依据。{}维基百科

畸形链表与循环导致无限遍历所有列表失败,因为迭代永远不会到达列表的末尾。因此,希望能够在尝试迭代之前检测链接列表是否格式错误。因此,在链接列表中查找循环将有助于避免错误及其来自计算机科学的基本问题。 你应该知道。

+0

这还是书籍讲座,理论。给我一个真正的例子作为开发者,你必须检查一些链表是否有循环:) – Adelin 2014-10-30 12:15:44