雙端鍊錶的頭插尾插頭刪尾刪

2021-10-08 08:12:47 字數 1121 閱讀 5907

雙端鍊錶的定義我在這裡就不贅述了。直接上圖講**:

雙端鍊錶的插入,無論是頭插還是尾插,都要記住大話資料結構中的一張圖,強調順序的。

這裡的順序比較容易記住,就是自己寫**的時候可能會比較迷糊,我是這樣記得,箭頭從起點到終點的方向為等式的左邊,箭頭的終點為等式的右邊,拿①舉例子,箭頭的方向為node->prev,箭頭的終點為head,所以第一步為node->prev = head。

node * node = new node;

//第一

node->prev = head;

//第二

node->next = head->next;

//第三

node->next->prev = node;

//第四

同理可得**為:

node * node = new node;

node->prev = tail->prev;

node->next = tail;

node->prev->next = node;

node->next->prev = node;

刪除節點時,同樣要記得大話資料結構中的一張圖就夠了:

在這裡,頭刪和尾刪是一樣的,因為沒有用到head和tail的資訊。

node * node = node;

node->prev->next = node->next;

node->next->prev = node->prev;

順序表的實現(頭插,頭刪尾插,尾刪)

順序表 順序表是在計算機記憶體中以陣列的形式儲存的線性表,是指用一組位址連續的儲存單元依次儲存資料元素的線性結構。線性表採用順序儲存的方式儲存就稱之為順序表。順序表是將表中的結點依次存放在計算機記憶體中一組位址連續的儲存單元中。順序表特點 將表中元素乙個接乙個的存入一組連續的儲存單元中,這種儲存結構...

單鏈表的頭增頭刪尾增尾刪

鍊錶是一種資料結構,和陣列同級,鍊錶在進行迴圈遍歷時效率不高,但是在插入和刪除時優勢明顯。單向鍊錶是一種線性表,是有有結點 node 組成的,邏輯上是線性的,物理儲存上不一定,每個結點只能也只有知道下乙個結點的儲存位置,向外暴露的只有乙個頭結點 head 對鍊錶的所有操作都是直接或者間接地通過頭結點...

單向鍊錶的尾刪

鍊錶的尾刪依然分為空鍊錶和非空鍊錶,對於空鍊錶來說,鍊錶中沒有節點無法刪除,所以直接返回null,對於非空鍊錶,要實現鍊錶的尾刪就要找到倒數第二個節點,讓倒數第二個節點的next指向null,這樣就實現了刪除最後乙個節點,最後返回鍊錶的頭節點head.public class node public...