有没有公​​共数据结构的开源C库?

我正在寻找具有常见的可重用数据结构,如链接列表,哈希表等的C库。类似于由Kyle Loudon用C(平装书)进行Mastering Algorithms分发的源代码。

BSD queue.h有:

  • SLIST =单链表
  • LIST =双向链表
  • SIMPLEQ =单链队列
  • TAILQ =双向链接队列

BSD tree.h有:

  • RB – 红黑树
  • SPLAY – splay树

有关详细信息,请参阅队列(3)和树(3)手册页。 我真的很喜欢他们,因为他们是纯粹的Cmacros没有依赖(甚至没有libc)。 再加上BSD许可证,您不必担心任何公司对GPL的限制。

Gnome为此提供了一个很好的库,称为Glib ,有许多有用的数据结构和其他实用程序。

GNU便携库gnulib 。

它作为源代码分发。 该列表来自其模块列表 ,其中包括其他东西的TON。 一个有趣的是“c-stack:堆栈溢出处理,导致程序退出”。

  • 名单
  • 数组列表
  • CARRAY列表
  • 链表
  • avltree列表
  • rbtree列表
  • linkedhash列表
  • avltreehash列表
  • rbtreehash列表
  • 子列表(由另一个列表支持的序列列表数据types)
  • oset(抽象有序集合)
  • arraysOSET
  • avltree-OSET
  • rbtree-OSET

SGLIB是一个优秀的通用数据结构库。 该库目前提供了以下通用实现:
sorting数组
链表
sorting的链接列表
双链表
红黑树
散装容器

这个速度非常快,比glib快。 它受标准模板库的启发。 从这里下载

另一个解决scheme是吸引人的混沌软 Cmacros库:
kbtree.h:C中高效的B树库
khash.h:C中快速和轻量级的哈希表库
kvec.h:C中的简单向量容器

Sglib和有吸引力的混沌软件是Cmacros库。 使用void *在C中实现generics容器可能是低效的。 Cmacros模仿C ++模板,并且和C ++模板一样高效

GDSL图书馆可能是一件好事情要考虑:

http://home.gna.org/gdsl/

Apache便携式运行时。

CLIB

AT&T的软件工具 。