2014-03-02 30 views
0

我的書只在一頁上提到了循環鏈表,並說你可以通過將單鏈表或雙鏈表的頭部和尾部相互鏈接來創建它們。但編程練習說:沒有頭部或尾部的Java循環鏈表?

「循環鏈表不需要頭或尾,而只需要引用當前節點,即Iterator返回的nextNode。類。對於非空列表,Iterator.hasNext方法將始終返回true。「

我不太確定我應該如何處理這個問題。

+0

具體來說,你卡在什麼? –

+0

我明白如何製作一個單一的鏈表,但我不明白我怎樣才能使它成爲一個沒有任何引用頭或尾節點的循環鏈表。這是整本書中唯一提到的循環鏈表。 –

+0

那麼如果你想到一個圓圈,圓圈的「開始」和「結束」是什麼時候? – MxyL

回答

2

該練習的措辭不會限制您在實施過程中的決定:而不是規定特定的解決方案,它允許您以最方便的方式實施列表。

您確實需要一個指向列表的指針,但由於列表是循環的,因此不需要指向特定的任何位置。因爲它並不指向一個頭部或尾部,你可以把它叫做next,並保持其指向你覺得方便的任何元素:

  • 插入後,next可能指向你剛纔插入的元素
  • 刪除後,next可能之前或之後刪除一個
  • 搜索後指向元素,next可以保持不變
+0

這很有道理,感謝您的幫助 –

0

爲了貴駟轉換ngle或雙鏈表到圓形,u l鏈接頭部和尾部..現在列表結構是圓形的..所以不需要有頭部/尾部。 Bcoz所有節點相互連接,因此沒有指針將下一個節點設爲空。

圓形列表有2種類型。 ()和hasPrev()

單循環列表 - hasNextNext()方法 上述方法是在循環鏈表中遍歷的方式。