3 回答

TA貢獻1783條經驗 獲得超4個贊
BSD queue.h具有:
SLIST =單鏈表
LIST =雙鏈表
SIMPLEQ =單鏈接隊列
TAILQ =雙鏈隊列
BSD tree.h具有:
RB-紅黑樹
SPLAY-SPLAY樹
有關詳細信息,請參見queue(3)和tree(3)手冊頁。我真的很喜歡它們,因為它們是沒有依賴性的純C宏(甚至沒有libc)。加上BSD許可證,您不必擔心任何帶有GPL的公司限制。

TA貢獻1799條經驗 獲得超9個贊
gnulib,gnu可移植性庫。
它作為源代碼分發。該列表來自其模塊列表,其中包括大量其他信息。一個有趣的例子是“ c-stack:堆棧溢出處理,導致程序退出”。
清單
數組列表
卡列清單
鏈表
avltree列表
rbtree列表
鏈接哈希表
avltreehash列表
rbtreehash列表
子列表(由另一個列表支持的順序列表數據類型。)
oset(抽象有序集。)
陣列式
Avltree-oset
rbtree-oset

TA貢獻1779條經驗 獲得超6個贊
SGLIB是一個出色的通用數據結構庫。該庫目前提供了通用的實現為:
數組排序
鏈表
排序的鏈表
翻番鏈表
紅黑樹
哈希容器
它非常快,比glib快。它的靈感來自標準模板庫。在這里下載
另一個解決方案是有吸引力的混沌軟件。C宏庫:
kbtree.h:C.中的高效B樹庫
khash.h:C中的快速輕量哈希表庫
。kvec.h:C中的簡單矢量容器。
Sglib和有吸引力的混沌軟件是C宏庫。使用void *在C中實現通用容器可能效率不高。C宏模仿C ++模板,并且與C ++模板一樣高效
添加回答
舉報