我正在寻找一个具有常见可重用数据结构的C库,例如链表,哈希表等。像Mastering Algorithms with C (Paperback) by Kyle Loudon一样分发的源代码。
答案 0 :(得分:52)
BSD queue.h有:
BSD tree.h有:
有关详细信息,请参阅queue(3)和tree(3)手册页。我真的很喜欢它们,因为它们是没有依赖关系的纯C宏(甚至不是libc)。再加上BSD许可证,您无需担心GPL的任何公司限制。
答案 1 :(得分:37)
Gnome为此提供了一个很好的库,名为Glib,还有许多有用的数据结构和其他实用程序。
答案 2 :(得分:28)
gnulib,gnu可移植性库。
它作为源代码分发。 此列表来自其module list,其中包含一些其他内容。一个有趣的是“c-stack:堆栈溢出处理,导致程序退出。”
答案 3 :(得分:18)
SGLIB是一个出色的通用数据结构库。该库目前提供以下通用实现:
排序阵列
链表
已排序的链接列表
双链表
红黑树
散列容器
它比glib快得多,速度快。它的灵感来自标准模板库。 Download Here
另一个解决方案是Attractive Chaos software。
C宏库:
kbtree.h:C中有效的B树库。
khash.h:C中的快速和轻量级哈希表库。
kvec.h:C中的简单向量容器
Sglib和Attractive Chaos软件是C宏库。使用void *在C中实现通用容器可能效率低下。 C宏模仿C ++模板,并且与C ++模板一样高效
答案 4 :(得分:5)
GDSL图书馆可能是一件好事:
答案 5 :(得分:3)
Apache Portable Runtime。
答案 6 :(得分:0)
答案 7 :(得分:-2)
AT& T的software tools。