是否有任何具有通用数据结构的开源C库?

Vas*_*sil 104 c data-structures

我正在寻找一个带有常见的可重用数据结构的C库,比如链表,哈希表等.像Kyle Loudon那样使用C语言(Masterback Algorithms with C)进行分发.

HUA*_*UAH 54

BSD queue.h有:

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

BSD tree.h有:

  • RB - 红黑树
  • SPLAY - splay树

有关详细信息,请参见queue(3)tree(3)手册页.我真的很喜欢它们,因为它们是没有依赖关系的纯C宏(甚至不是libc).再加上BSD许可证,您无需担心任何公司对GPL的限制.


Emi*_*l H 36

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


Ian*_*ing 29

gnulib,gnu可移植性库.

它作为源代码分发.此列表来自其模块列表,其中包含一些其他内容.一个有趣的是"c-stack:堆栈溢出处理,导致程序退出."

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

  • 请记住,此选项是 GPL 许可的,因此只能在 GPL 许可的软件中合法使用。 (2认同)

Lea*_*ear 19

SGLIB是一个出色的通用数据结构库.该库目前提供通用实现:
排序数组
链表
排序链表
双链表
红黑树
散列容器

它比glib快得多,速度快.它的灵感来自标准模板库.在这里下载

另一个解决方案是Attractive Chaos软件.C宏库:
kbtree.h :C.khash.h中的高效B树库
:C. kvec.h中的快速和轻量级哈希表库
:C中的简单向量容器

Sglib和Attractive Chaos软件是C宏库.使用void*在C中实现通用容器可能效率低下.C宏模仿C++模板,并且与C++模板一样高效


lui*_*nal 5

GDSL库可能是一件好事:

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