第三章 表,棧,佇列

2021-07-27 11:13:59 字數 927 閱讀 9033

在實踐中如果知道變動將要發生的地方, 那麼向鍊錶插入或從鍊錶中刪除一項的操作不需要移動很多的項, 而只涉及常熟個節點鏈的改變;

雙鏈表:

1.arraylist與linkedlist的優缺點:

arraylist: 查詢快, 增刪慢;

linkedlist: 增刪快, 查詢慢;

使用linkedlist的優點在於新項的插入和現有項的刪除均開銷很小, 這裡假設變動項的位置是已知的. 這意味著, 在表的前端進行新增和刪除都是常數時間的操作.

對於arraylist如果在首端進行插入和刪除操作, 每次要花費線性時間.

對於arraylist:

1.

get()

2.set()

3.add(index,value)

4.remove()

add(index,value):進行如下操作

new newarrs = new

int[length+1];

for(int i=0;i1;i++)else

}所以對於一項的插入,需要時間為o(n);

對於get和set方法:

get(index);

return arrays[index];

set(index,value):

arrays[index] = value;

linkedlist:

第三章 表 棧和佇列

陣列 在記憶體中儲存為連續固定大小空間。特點 因為是連續空間,所以查詢速度快 o 1 當增刪元素位置不是在陣列尾時,會導致移動陣列元素,加大操作量,降低速度。鍊錶 在記憶體中儲存不連續,用乙個節點記錄下乙個節點位置,形成連續節點。特點 查詢不方便,需要從頭節點開始遍歷,儘管做了一些優化 例如,儲存頭...

第三章 棧和佇列

棧和佇列 一 棧 1 棧的定義 棧是限定僅在表尾進行插入和刪除操作的線性表,允許插入和刪除的一端稱為棧頂,另一端稱為棧底,不含任何資料元素的棧稱為空棧。2 在任何時候出棧的元素都只能是棧頂元素,即最後最後入棧者最先出棧。所以棧中元素除了具有線性關係外,還具有後進先出的特性。3 棧的抽象資料型別定義 ...

第三章 棧和佇列

棧和佇列是兩種常用的資料結構,同時又是操作受限的線性表,也是兩種重要的抽象資料型別。1 1棧是限定僅在表尾進行插入和刪除操作的線性表。棧中元素具有線性關係和後進先出的特性。2雖然對插入和刪除操作的位置限制減少了棧的靈活性,但同時也使得棧的操作更有效更容易實現。3棧的儲存結構分兩種,一種是順序儲存結構...