1.單向鍊錶因為只有乙個指標指向下乙個指標,所以只能從前往後找,速度慢
2.為了更迅速,於是就在加了乙個前指標,也就變成了雙向鍊錶
1) 新節點的前指標指向上乙個節點;
2) (新)節點的後指標指向下乙個節點;
3.兩者寫法基本相似,重點要畫圖理解雙向鍊錶的含義
#include
#include
#define null 0
struct doublelist
;struct doublelist*
createlist()
//建立節點
struct doublelist*
createnode
(int date)
void
insertnodebytail
(struct doublelist* headnode,
int date)
//用尾部插入
void printlist (
struct doublelist* headnode)
printf
("\n");
}int
main()
這個講解更為詳細
無
一一計畫(Day 2 )鏈式棧
顧名思義這裡的棧是與煉表相掛鉤,因為鍊錶和棧有個共同的性質就是先進後出,所以寫法與鍊錶相似 1.寫出棧的資料結構 2.建立棧也就是初始化過程 3.寫出節點的資料結構 因為入棧前得要用東西可以入到棧裡面 4.建立節點 5.入棧 也就是插入節點寫法與鍊錶相同 6.獲取棧頂元素 7.出棧 也就是刪除節點寫...
鍊錶家族(2) 雙向鍊錶
前面實現了乙個單鏈表,現在我們再來做乙個雙向鍊錶吧!附上單鏈表描述 和單鏈表差別非常小,只是多了乙個指標指向前乙個元素。這樣就更像我們生活中的鏈條了。typedef struct lnode lnode,linklist lnode是型別名,linklist是指向lnode型別的指標 特別說一下插入...
演算法2 鍊錶3 雙向鍊錶
雙 向 鍊錶中有兩條方向不同的鏈,即每個結點中除next域存放後繼結點位址外,還增加乙個指向其直接前趨的指標域prior。雙向鍊錶在查詢時更方便 特別是大量資料的遍歷。注意 雙鏈表由頭指標head惟一確定的。帶頭結點的雙鏈表的某些運算變得方便。將頭結點和尾結點鏈結起來,為雙 向 迴圈鍊錶。形式描述 ...