1. 程式人生 > >Linux核心設計與實現 總結筆記(第六章)核心資料結構

Linux核心設計與實現 總結筆記(第六章)核心資料結構

核心資料結構

Linux核心實現了這些通用資料結構,而且提倡大家在開發時重用。

核心開發者應該儘可能地使用這些資料結構,而不要自作主張的山寨方法。

通用的資料結構有以下幾種:連結串列、佇列、對映和二叉樹

 

一、連結串列

1.1 單向連結串列和雙向連結串列

 

1.2 環形連結串列

 

1.3 沿連結串列移動

 

1.4 Linux核心中的實現

 

1.5 操作連結串列

 

1.6 遍歷連結串列

 

二、佇列

2.1 kfifo

 

2.2 建立佇列

 

2.3 推入佇列資料

 

2.4 摘取佇列資料

 

2.5 獲取佇列長度

 

2.6 重置和撤銷佇列

 

2.7 佇列使用舉例

 

三、對映

3.1 初始化一個dir

 

3.2 分配一個新的UID

 

3.3 查詢UID

 

3.4 刪除UID

 

3.5 撤銷idr

 

四、二叉樹

4.1 二叉搜尋樹

 

4.2 自平衡二叉搜尋樹

 

五、資料結構以及選擇

 

六、演算法複雜度

6.1 演算法

 

6.2 大o符號

 

6.3 大θ符號

 

6.4 時間複雜度