Java資料結構與演算法 五 雙向鍊錶

2021-09-24 09:00:31 字數 1311 閱讀 2370

package com.fantj.datastruct.doublelistnode;

/** * 雙向鍊錶,比雙端鍊錶多了乙個頭結點的指向

* created by fant.j.

* 2017/12/21 19:49

*/public class doublelinklist

/*** 插入乙個結點,在頭結點後進行插入

*/public void insertfirst(long value)else

node.next = first;

first = node;

}/**

* 插入乙個結點,從尾結點進行插入

*/public void insertlast(long value)else

last = node;

}/**

* 刪除乙個結點,在頭結點後進行刪除

*/public node deletefirst

()else

first = temp.next;

return temp;

}/**

* 顯示方法

*/public void display

() }

/*** 查詢方法

*/public node find(long value)

current = current.next;//繼續往下找

}return current;

}/**

* 刪除方法,根據資料域來進行刪除

*/public node delete(long value)

previous = current; //提取出當前結點作為前乙個結點(用該結點的next指向刪除結點的後乙個結點)

current = current.next; //繼續往下找

}if (current == first)else

return current;

}/**

* 判斷是否為空

*/public boolean isempty()}

複製**

package com.fantj.datastruct.doublelistnode;

/** * 鍊錶結構,鏈結點

* created by fant.j.

* 2017/12/19 22:19

*/public class node

/*** 顯示方法

*/public void display()}

複製**

檢視原始碼:git位址

資料結構與演算法(4)雙向鍊錶

1.單鏈表的的缺點 1 單向鍊錶查詢的方向只能是乙個方向,而雙向鍊錶可以向前或者向後查詢 2 單向鍊錶不能自我刪除,需要考輔助節點,而雙向鍊錶則可以進行自我刪除 2.雙向鍊錶的說明 1 遍歷 和單向鍊錶一樣,只是可以向前,可以向後 2 新增 預設新增到雙向鍊錶的最後 3 修改 和單向鍊錶思路一樣 4...

資料結構與演算法 鍊錶2 雙向鍊錶

雙向鍊錶結點和單向鍊錶結點的區別在於,多了乙個指向前驅的指標。當這個節點是第乙個節點時,前驅指標是乙個空指標。單向鍊錶的結構如下圖1所示 圖1 單向鍊錶結構圖 雙向鍊錶的結構如下圖2所示 圖2 雙向鍊錶結構圖 顯然通過以上2個圖的對比,可以看出鍊錶兩種形式的特點。雙向鍊錶顯然我們在建立的時候需要永久...

資料結構與演算法筆記(四 雙向鍊錶

前一篇 資料結構與演算法筆記 三 單鏈表 乙個完整的雙向鍊錶應該是頭結點的pre指標指為空,尾結點的next指標指向空,其餘結點前後相鏈。結點構成 建構函式 typedef struct lineline,a 分別表示該結點的前驅 pre 後繼 next 以及當前資料 data 建立 對於建立雙向鍊...