什麼是鍊錶,這種資料結構是由一組node組成的,這群node一起表示了乙個序列。鍊錶是最普通,最簡單的資料結構(實體地址不連續),它是實現其他資料結構如stack, queue等的基礎。
鍊錶比起陣列來,更易於插入,刪除。
node可以定義如下:
typedef intelement_type;
typedef
struct node *node_ptr;
struct
node ;
另外關於要不要頭節點這個問題,我建議加上頭節點,理由如下:
1. 沒有頭節點,刪除第乙個節點後,不小心就丟失了list
2. 插入頭部時,沒有個直觀的方法。
3. 通常的刪除操作,都要先找到前乙個節點,如果沒有頭節點,刪除第乙個節點就不一樣了。
接下來重點實現單鏈表的反轉,這也是常常考到的乙個問題,下面是c語言實現:
voidlist_reverse(list l)
l->next =first;
}
單鏈表及其反轉
單鏈表是一種鏈式訪問的資料結構,用一組位址任意的儲存單元存放線性表中的資料元素。鍊錶中的資料是以結點來表示的,每個結點由元素和指標構成,元素是儲存資料的儲存單元,指標是連線每個結點的位址資料,本文將介紹什麼是單鏈表以及單鏈表的翻轉,主要內容如下 什麼是單鏈表 遍歷反轉單鏈表 遞迴反轉單鏈表 什麼是單...
單鏈表反轉
單鏈表反轉,可以用迴圈做,當然也可以遞迴 詳見 include includestruct node 3 1 4 6 2 1 1 3 4 6 2 2 4 1 3 6 2 3 6 4 1 3 2 4 2 6 4 1 3 5 迴圈反轉,即依次改動3個指標值,直到鍊錶反轉完成 比如,上面第 1 行到第 2...
反轉單鏈表
include stdafx.h include include using namespace std struct listnode typedef listnode plistnode typedef plistnode list list creatlist return head void...