鍊錶之雙向鍊錶

2021-09-26 13:50:16 字數 821 閱讀 1861

首先在說下單鏈表,才能和雙鏈表作比較

單鏈表(單向鍊錶):由兩部分組成 資料域(data)和結點域(node),單鏈表就像是一條打了很多結的繩子,每乙個繩結相當於乙個結點,每個節結點間都有繩子連線,這樣原理的實現是通過node結點區的頭指標head實現的,每個結點都有乙個指標,每個節點指標的指向都是指向自身結點的下乙個結點,最後乙個結點的head指向為null,這樣一來就連成了上述所說繩子一樣的鏈,對單鏈表的操作只能從一端開始,如果需要查詢鍊錶中的某乙個結點,則需要從頭開始進行遍歷。

新增:上圖可以看出 單向鍊錶只有乙個指向,原來head為p,p指向s,新增結點只需要把p指向q,q指向s就可以了,即:p--->q ;  q--->s ; 這樣就實現了單向鍊錶的新增

刪除:原理與新增相反,若此時鍊錶為 p---> q --->s ; 若刪除q節點只需要更改p的指向就可以了 p--->s,這樣就刪掉了;

查詢:查詢操作需要對整個但鍊錶進行遍歷,直到滿足查詢條件為止;

雙向鍊錶:

雙鏈表(雙向鍊錶):雙鏈表和單鏈表相比,多了乙個指向尾指標(tail),雙鏈表的每個結點都有乙個頭指標head和尾指標tail,雙鏈表相比單鏈表更容易操作,雙鏈表結點的首結點的head指向為null,tail指向下乙個節點的tail;尾結點的head指向前乙個結點的head,tail 指向為null,是雙向的關係;

**:public class linklistelseelseelse if(temp.getnext()==null)else{

temp.getfront().setnext(temp.getnext());

temp.getnext().setfront(temp.getfront())

雙向鍊錶(鍊錶)

雙向鍊錶 每個節點包含指向後繼節點的指標和指向前驅節點的指標。繼承關係圖 實體圖 duallinklist.h duallinklist 雙向鍊錶類模板 成員變數 node 節點實體 m header 頭節點 m length 鍊錶長度 m step 步進長度 m current 當前節點前乙個節點...

mysql 雙向鍊錶 雙向鍊錶

雙向鍊錶是鍊錶變型,相比於單鏈表導航或者是向前和向後的兩種方式。以下是重要的術語來理解雙向鍊錶的概念 link 鍊錶的每個鏈路儲存資料稱為乙個元素。linkedlist linkedlist包含連線鏈結到名為首先第乙個鏈結,並稱為最後的最後乙個鏈結 last 雙向鍊錶表示 按照如上圖中所示,以下是要...

單向鍊錶和雙向鍊錶區別 雙向鍊錶

一開始確實被這個雙向鍊錶整暈了,node裡面不停套node,簡直無限套娃,讓人不知道該怎麼下手。後來看了資料結構與演算法分析這本書的 才算整明白。我把鍊錶分成了三個部分 第一部分是node.node是乙個由兩根指標,以及我們需要儲存的資料構成的結構體。這個node就是無限套娃的起源,也是鍊錶用於儲存...