《核心鍊錶》
核心鍊錶即,我麼在乙個鍊錶中插入或刪除乙個資料,都需要自己編寫**,相當的麻煩,怎麼解決這個問題呢,為了更加方便的解決這個問題,linux中就產生了核心鍊錶,以後想要在鍊錶中插入資料或刪除資料時,只需要呼叫函式就可以了。
《鍊錶對比》
鍊錶是一種資料結構,他通過指標將一系列的資料節點連線成一條資料鏈,相對於陣列,鍊錶更具有更好地 動態性,建立鍊錶時,無需知道鍊錶的總數量,可以隨機分配空間,可以高效的在鍊錶中插入和刪除資料,鍊錶的開銷主要是訪問的順序性和組織鏈的損失。
傳統雙向量表:
指標是指向下乙個節點的資料
《核心鍊錶使用》
1)核心鍊錶結構
struct list_head
struct list_head *pre,*next;
由此可見,鍊錶具有雙向功能。
2)核心鍊錶函式
init_list_head():建立鍊錶
list_add():在表頭插入節點
list_add_tail():在鍊錶為插入節點
list_del():刪除節點
list_entry():取出節點
list_for_each():遍歷節點
《核心鍊錶實現分析》
首先包含標頭檔案
使用函式:
init_list_head() 建立乙個列表,接下來就是呼叫函式 list_add_tail(),旺該節點插入節點。就是這麼個原理。
《移植核心鍊錶》
將標頭檔案,和相應的實現**移植到應用程式中,本身是乙個核心的實現**
linux核心鍊錶
鍊錶是一種常用的資料結構,它通過指標將一系列資料節點連線成一條資料鏈。相對於陣列,鍊錶具有更好的動態性,建立鍊錶時無需預先知道資料總量,可以隨機分配空間,可以高效地在鍊錶中的任意位置實時插入或刪除資料。鍊錶的開銷主要是訪問的順序性和組織鏈的空間損失。一 鍊錶結構 單鏈表結構如下 雙鏈表結構如圖 st...
linux核心鍊錶
include include struct list head struct mylist void list add struct list head new,struct list head prev,struct list head next void list add tail struc...
Linux核心鍊錶
1.在linux核心中使用了大量的鍊錶結構來組織資料,鍊錶結構的定義為 struct list head list head結構包含兩個只想list head結構的指標prev和next,由此可見,核心的鍊錶具備雙鏈表的功能。實際上,通常他都組織成雙向迴圈鍊錶。2.linux核心中提供的鍊錶操作主要...