前一篇:資料結構與演算法筆記(三): 單鏈表
乙個完整的雙向鍊錶應該是頭結點的pre指標指為空,尾結點的next指標指向空,其餘結點前後相鏈。
結點構成
建構函式
typedef
struct lineline,
*a;//分別表示該結點的前驅(pre),後繼(next),以及當前資料(data)
建立
對於建立雙向鍊錶,我們需要先建立頭結點再逐步的進行新增。
請注意,雙向鍊錶的頭結點是有資料元素的,也就是頭結點的data域中是存有資料的,這與一般的單鏈表是不同的。
line*
initline
(line * head)
return head;
}
插入
//判斷條件為真,說明插入位置為鍊錶尾
if(body->next==
null
)else
}return head;
}刪除
("error:沒有找到該元素,沒有產生刪除\n");
return head;
}遍歷
while(list) list=list->next;
void
printline
(line *head)
}
資料結構四雙向鍊錶
雙向鍊錶也叫雙鏈表,是鍊錶的一種,它的每個資料結點中都有兩個指標,分別指向直接後繼和直接前驅。所以,從雙向鍊錶中的任意乙個結點開始,都可以很方便地訪問它的前驅結點和後繼結點。而之前的單鏈表為單向鍊錶,雙向鍊錶也就是在單鏈表的結點中增加乙個指向其前驅的pre指標。如圖 這裡介紹雙向鍊錶的常用操作 l ...
資料結構與演算法(4)雙向鍊錶
1.單鏈表的的缺點 1 單向鍊錶查詢的方向只能是乙個方向,而雙向鍊錶可以向前或者向後查詢 2 單向鍊錶不能自我刪除,需要考輔助節點,而雙向鍊錶則可以進行自我刪除 2.雙向鍊錶的說明 1 遍歷 和單向鍊錶一樣,只是可以向前,可以向後 2 新增 預設新增到雙向鍊錶的最後 3 修改 和單向鍊錶思路一樣 4...
資料結構與演算法 鍊錶2 雙向鍊錶
雙向鍊錶結點和單向鍊錶結點的區別在於,多了乙個指向前驅的指標。當這個節點是第乙個節點時,前驅指標是乙個空指標。單向鍊錶的結構如下圖1所示 圖1 單向鍊錶結構圖 雙向鍊錶的結構如下圖2所示 圖2 雙向鍊錶結構圖 顯然通過以上2個圖的對比,可以看出鍊錶兩種形式的特點。雙向鍊錶顯然我們在建立的時候需要永久...