鍊錶的使用
鍊錶是驅動開發中經常遇到的乙個資料結構,主要是雙向迴圈鍊錶;要使用鍊錶,需要用到乙個list_entry的結構,其定義如下:
typedef struct _list_entry list_entry, *plist_entry;
在實際的程式設計中,我們需要自己定義鍊錶的節點,並把節點的第乙個成員設定為list_entry型別的變數(不一定放在第一位,但通常是這樣);此外,我們還需要乙個list_entry型別的煉表頭;其他的就靠下面的函式或者巨集來操作了:
initializelisthead,初始化煉表頭
islistempty,判斷鍊錶是否為空
insertheadlist,從鍊錶頭部插入節點
inserttaillist,從鍊錶尾部插入節點
removeheadlist,從鍊錶頭部刪除節點
removetaillist,從鍊錶尾部刪除節點
containing_record,從removeheadlist或者removetaillist返回的資料獲取乙個指向刪除節點的指標
資料結構學習 鍊錶結構
儲存結構定義 struct node typedef struct node ptrtonode typedef ptrtonode list typedef ptrtonode position struct node 書寫 package thedatastructureaboutlinked ...
資料結構學習 鍊錶
將從下面4部分進行介紹 首先介紹鍊錶是什麼,然後介紹為什麼定義鍊錶,接著是鍊錶的分類,最後簡單介紹一下鍊錶結點的插入與刪除方法。首先,在介紹鍊錶之前,我們先介紹一下什麼是順序儲存結構。我們知道資料在計算機中的儲存就像貨物在倉庫中的儲存一樣,不但占用一定的空間,還要有乙個標示儲存位置的位址。計算機通過...
資料結構學習 鍊錶
由於不必須按順序儲存,鍊錶在插入的時候可以達到o 1 的複雜度,比另一種線性表順序表快得多,但是查詢乙個節點或者訪問特定編號的節點則需要o n 的時間,而線性表和順序表相應的時間複雜度分別是o logn 和o 1 使用鍊錶結構可以克服陣列鍊錶需要預先知道資料大小的缺點,鍊錶結構可以充分利用計算機記憶...