SylixOS中的雜湊鍊錶

2021-10-12 07:16:52 字數 662 閱讀 6544

雜湊鍊錶又稱雜湊表,是為了加快結點查詢而設計的一種資料結構。本質上是雜湊和鍊錶的結合體。

基本原理是:把需要查詢的關鍵字通過對映函式(雜湊函式)對映到相應的儲存位址,然後直接訪問結點。需要儲存或者查詢的結點一般稱為關鍵字(key value),而這個對映函式一般稱為雜湊函式,對映到的儲存位址一般稱為雜湊表。

雜湊鍊錶資料結構定義:

typedef

struct __hlist_node lw_hlist_node;

typedef

struct __hlist_head lw_hlist_head;

雜湊鍊錶的雜湊函式在libsylixos/sylixos/shell/hashlib/hashhorner.c檔案中定義。

int  __hashhorner (cpchar  pckeyword, int  itablesize)

;

雜湊雜湊函式,使用horner多項式。雜湊表的大小最好為素數,這樣雜湊的效果最好。本演算法專為變數管理器和shell管理器設計,採用一階雜湊表進行搜尋。

sylixos核心中系統查詢全域性符號表,查詢、匯出符號以及shell系統的關鍵字管理等多處地方使用到雜湊一級雜湊表確定關鍵字位置,再通過其他鍊錶的操作查詢具體的內容。

hlist 雜湊鍊錶

linux鍊錶設計者 因為 list.h 沒有署名,所以很可能就是 linus torvalds 認為雙頭 next prev 的雙鏈表對於 hash 表來說 過於浪費 因而另行設計了一套用於 hash 表應用的hlist資料結構 單指標表頭雙迴圈鍊錶,從上圖可以看出,hlist的表頭僅有乙個指向首...

hlist雜湊鍊錶

原文出處 http blog.chinaunix.net u 12592 showart.php?id 451619 王耀 wangyao cs.hit.edu.cn hlist雜湊鍊錶是核心中常用的乙個資料結構,由於它不同於普通的鍊錶,所以這裡對hlist雜湊鍊錶進行一下分析,希望對大家有所幫助。...

雜湊鍊錶hlist

zyd cu ydzhang.blog.chinaunix.net 鍊錶 list 和雜湊表 hlist 是核心常用到的兩個工具,負責組織核心中很多的資料結構,如在程序管理中用於組織程序,檔案系統中的inode節點鍊錶,dentry鍊錶,vfsmount鍊錶等等。鍊錶使用struct list he...