没有头或尾的Java循环链表?

时间:2014-03-02 03:36:45

标签: java iterator circular-list

我的书只在一个页面上提到了循环链表,并说你可以通过将单链表或双链表的头部和尾部相互链接来创建它们。但随后编程练习说:

“循环链接列表不需要头部或尾部。相反,您只需要引用当前节点,这是Iterator返回的nextNode。实现这样的类。对于非空列表, Iterator.hasNext方法将始终返回true。“

我不确定如何处理这个问题。

2 个答案:

答案 0 :(得分:2)

练习的措辞不会限制您的实施决策:它不是规定特定的解决方案,而是让您以最方便的方式实现列表。

你需要有一个指向列表的指针,但由于列表是循环的,因此不需要特别指向任何地方。由于它不指向头部或尾部,您可以将其称为next,并将其指向您认为方便的任何元素:

  • 插入后,next可能指向您刚刚插入的元素
  • 删除后,next可以指向删除的
  • 之后或之前的元素
  • 搜索后,next可以保持不变

答案 1 :(得分:0)

为了将您的单链表或双链表转换为圆形,我将链接头部和尾部..现在列表结构是圆形的...所以没有必要有头/尾。 Bcoz所有节点都是相互链接的,因此没有指针将下一个节点作为null。

循环列表有两种类型。 单循环列表 - 具有hasNext()方法 双循环列表.-具有hasNext()和hasPrev()

上述方法是遍历循环链表的方法。