C程序員的哈希庫(kù)
此頁(yè)面列出了一系列可幫助您在C中編程的庫(kù)。這里的庫(kù)是開(kāi)源的,用于幫助您存儲(chǔ)數(shù)據(jù),而無(wú)需滾動(dòng)自己的鏈接列表等數(shù)據(jù)結(jié)構(gòu)。
uthash
由Troy D.Hanson開(kāi)發(fā),任何C結(jié)構(gòu)都可以使用uthash存儲(chǔ)在哈希表中。只需包括#include"UT hash.h"然后在結(jié)構(gòu)中添加一個(gè)UT Uhash#處理,并在結(jié)構(gòu)中選擇一個(gè)或多個(gè)字段作為密鑰。然后使用散列添加,散列查找INT和宏來(lái)存儲(chǔ),檢索或刪除散列表中的項(xiàng)目。它使用int,string和二進(jìn)制鍵。
14 Judy 15 16
Judy是一個(gè)實(shí)現(xiàn)稀疏動(dòng)態(tài)數(shù)組的C庫(kù)。Judy數(shù)組僅使用空指針聲明,僅在填充時(shí)才使用內(nèi)存。如果需要,他們可以成長(zhǎng)為使用所有可用內(nèi)存。Judy'主要優(yōu)點(diǎn)是可擴(kuò)展性,高性能和內(nèi)存效率。它可以用于動(dòng)態(tài)大小的數(shù)組,關(guān)聯(lián)數(shù)組或簡(jiǎn)單易用的界面,不需要重新擴(kuò)展或收縮,可以替換許多常見(jiàn)的數(shù)據(jù)結(jié)構(gòu),如數(shù)組,稀疏數(shù)組,哈希表,B樹(shù),二進(jìn)制樹(shù),線性列表,跳過(guò)符,其他排序和搜索算法以及計(jì)數(shù)函數(shù)。
SGLIB
SGLIB是簡(jiǎn)單通用庫(kù)的縮寫(xiě),由單個(gè)標(biāo)題文件SGLIB.h組成,它為數(shù)組,列表,排序列表和紅黑樹(shù)提供了最常見(jiàn)算法的通用實(shí)現(xiàn)。該庫(kù)是通用的,它沒(méi)有定義自己的數(shù)據(jù)結(jié)構(gòu)。而是通過(guò)通用界面作用于現(xiàn)有的用戶(hù)定義的數(shù)據(jù)結(jié)構(gòu)。它也不分配或取消分配任何內(nèi)存,也不依賴(lài)于任何特定的內(nèi)存管理。
所有算法均以數(shù)據(jù)結(jié)構(gòu)和比較器功能(或比較器宏中醫(yī)健康養(yǎng)生知識(shí))類(lèi)型參數(shù)化的宏的形式實(shí)現(xiàn)。還有幾個(gè)基因?qū)τ谀承┧惴ê蛿?shù)據(jù)結(jié)構(gòu),可能需要參數(shù),例如'的名稱(chēng);下一個(gè)'鏈接列表的字段。