0
以下代碼是應該添加和刪除整數值,但功能不按預期工作的隊列。只有前兩個值被添加,remove函數顯示空指針異常。 此外,迭代器類不遍歷整數值。它會導致無限循環。原因是什麼?鏈接列表添加和刪除不按預期工作,Java
謝謝。
以下代碼是應該添加和刪除整數值,但功能不按預期工作的隊列。只有前兩個值被添加,remove函數顯示空指針異常。 此外,迭代器類不遍歷整數值。它會導致無限循環。原因是什麼?鏈接列表添加和刪除不按預期工作,Java
謝謝。
在add
方法這兩行似乎是創建一個循環:
front.next = previousNode;
previousNode.next = front;
週期這裏導致在迭代中的無限循環。
我認爲你需要的只是將前一個節點的下一個節點設置到新節點。
previousNode.next = front;
另外,remove
方法的這一部分似乎並不正確:
E n = back.element;
back = back.next;
if (back == null)
front = null;
else
back.next = null;
這裏的問題是,你設置back.next
爲null每一次,它讓你失去的休息隊列。
爲了解決這個問題,你只需要刪除其他部分,以便保持舊的下一個。
E n = back.element;
back = back.next;
if (back == null)
front = null;
。在你的設計中一大缺陷:不知道前面的元素,你正在使用'回來= back.next'這則正好相反,打破結構無法刪除從最終的元素。您需要將每個節點的下一個和後一個都存儲起來,或者每次都要遍歷它。 – Jack
是否有任何理由不使用[LinkedList](https://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.html)?它在JRE6及更高版本中可用 –