有没有具有通用数据结构的开源 C 库?

我正在寻找一个 C 库与通用的可重用数据结构,如链表,哈希表等。类似于 用 C 语言掌握算法(平装本)作者: Kyle Loudon发布的源代码。

68620 次浏览

Gnome 为此提供了一个优秀的库,称为 油嘴滑舌,其中包含许多有用的数据结构和其他实用程序。

Gnulib ,gnu 可移植性库。

以源代码的形式发布。 这个列表来自它的 模组清单,其中包括一吨的其他东西。一个有趣的例子是“ c-Stack: 栈溢出处理,导致程序退出”

  • 名单
  • 数组列表
  • 清单
  • linked-list
  • Alvtree-list
  • rbtree-list
  • Linkedhash 列表
  • Avltreehash-list
  • rbtreehash-list
  • sublist ( Sequential list data type backed by another list. )
  • (抽象有序集)
  • 数组集
  • Alvtree-Oset
  • rbtree-oset

BSD 排队有:

  • 单链表
  • LIST = 双向链表
  • SIMPLEQ = 单链队列
  • TAILQ = doubly linked queue

BSD 有:

  • 红黑相间的树
  • SPLAY - splay tree

有关详细信息,请参阅 排队(3)树木(3)手册页。我非常喜欢它们,因为它们是没有依赖关系的纯 C 宏(甚至不是 libc)。另外,使用 BSD 许可证,您不必担心任何公司限制 w/GPL。

SGLIB is an excellent generic data-structures library. The library currently provides generic implementations for:
排序数组
连结清单
已排序的链表
双向链表双向链表
red-black trees
散列容器 < br >

它非常快,比油嘴滑舌还要快。它的灵感来自于标准模板库

另一种解决方案是 迷人的混沌软件。 C macro library:
H: C 中高效的 B 树库。
H: C 中快速轻量级哈希表库。
kvec.h: simple vector container in C.

Sglib 和 Attractive浑沌软件是 C 宏库。使用 void * 在 C 中实现通用容器可能效率低下。C 宏模仿 C + + 模板,效率与 C + + 模板相当

GDSL 库可能是一个值得考虑的好东西:

Http://home.gna.org/gdsl/

Apache可移植运行时。