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 ++模板一样高效
添加回答
举报