數據存儲是基於雙向鏈表實現的。
插入數據很快。先是在雙向鏈表中找到要插入節點的位置index,找到之後,再插入一個新節點。 雙向鏈表查找index 位置的節點時,有一個加速動作:若index < 雙向鏈表長度的1/2,則從前向後查找; 否則,從後向前查找。
刪除數據很快。先是在雙向鏈表中找到要插入節點的位置index,找到之後,進行如下操作:node.previous.next = node.next;node.next.previous = node.previous;node = null 。查找節點過程和插入一樣。
獲取數據很慢,需要從Head節點進行查找。
遍歷數據很慢,每次獲取數據都需要從頭開始。
首先是棧的實現,棧是先進後出就像一摞洗好的碟子,放取都是在最上邊的因此只能對鏈表的頭或尾之一進行操作代碼如下
其中的push、peek、poop方法中的也可以同時對鏈表尾部進行操作。隊列遵循的是先進先出的原則就像自來水管先流進的水總是先流出 代碼如下