linux通用鍊錶list例項講解

2021-12-30 13:10:12 字數 345 閱讀 8075

linux核心中使用的鍊錶

特點是可以復用,無需反覆造輪子.

容易想到的一種鍊錶用法是這樣的:

struct list;

資料被儲存在鍊錶的節點內部 通過next和prev移動來訪問各個節點上的priv_data.

這樣做的問題在於**幾乎沒有復用性,不同的資料儲存就需要對應的多種list.

而linux kernel中提出了一種資料報含在節點之外的鍊錶 能很好的解決這個問題.

struct list_head ;

struct list_data ;

資料結構體list_data只需要包含乙個鍊錶結構list_head 就可以使用鍊錶的特性.

Linux中通用鍊錶 list 的解析(2)

1.下面介紹list的插入函式 ifndef config debug list static inline void list add struct list head new,struct list head prev,struct list head next else extern void...

鍊錶 List

stl中,list class list 的乙個例項 使用乙個doubly linked list管理元素。list不支援隨機訪問,但任何位置上執行元素的安插和移動都非常快。雙向鍊錶 doubly linked list 使用list時必須先包含標頭檔案 include其中list型別系定義於nam...

鍊錶list

includeusing namespace std include 鍊錶list stl中的鍊錶是乙個雙向迴圈鍊錶 list的迭代器是雙向迭代器 void printlist const list l coutl1.push back 10 l1.push back 20 l1.push back...