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 建立 對於建立雙向鍊...