C语言中的标准数据结构库是什么?

19

我正在寻找一个标准的、经过试验的 C 语言库(Windows 平台),用于实现栈、队列、树等数据结构。

最好能够提供源代码。虽然我可以自己编写库,但是我认为选择一些行业标准的实现可能会更加优化和少出错。

编译器是 Visual Studio 2005/2008。

5个回答

18

Glib

在这里下载适用于 Windows 的 Glib here


我正在寻找一些本地的Windows源代码,可以直接将其合并到我的项目中。此外,GLib带有许多其他附加组件,我不感兴趣。我只需要数据结构库。虽然会详细检查它。 - K Singh
3
“native windows source” 的意思是“本地 Windows 源代码”。 - qrdl
这是一个在Visual C++上编译不需要任何额外依赖的ANSI C兼容代码。我指的是,在Visual C++中编译的ANSI C兼容代码。当我尝试查看Glib时,它会带我进入GTK+网站。我知道这是GTK+框架的一部分库。如果我错了,请纠正我。 - K Singh
为了编译您的应用程序,您只需要 Glib,而不是完整的 GTK+(如果您不使用 GTK+ 的话)。 - qrdl
http://www.gtk.org/download-windows.html在工具链部分中,它表示:具体来说,这意味着你不应该在不完全了解的情况下使用比 Visual C++ 6 更新版本的 Microsoft 编译器。我还没有在 Visual Studio 2008 上编译它。 - K Singh
@Kavitesh 抱歉,我不知道。我来自UNIX世界,对Windows领域的情况不是很了解。 - qrdl

10
  • GDSL。根据文档,它是纯 ANSI C 代码,并且应该可以与Visual C ++一起使用。
  • C-generic-library
  • Kompimi。C数据结构库,注重集合。带有Visual Studio项目文件。

GDSL - 主页信息。GSL是使用gcc在Debian GNU / Linux上开发的。它应该在任何带有gcc的GNU / linux发行版上进行构建。GDSL在以下发行版下进行了测试并取得了成功:Debian Mandrake RedHat我将尝试在Visual C ++中进行编译。 - K Singh
Kompimi目前处于alpha版本。我更希望拥有一个经过试验和测试的库来支持我的应用程序。否则,我将从书本上的示例编写自己的库。对于C通用库,我无法在下载部分或检出svn时获取代码。 - K Singh

6
你有没有看过qLibc?它是一个开源的C实现,提供各种数据结构,例如哈希表、链表、队列、栈等。
截至今天,从它的网站上可以看到以下功能集:
容器 - 列表 - 双向链表。 - 列表表 - 基于链表的键值对表格。 - 哈希表 - 基于哈希的键值对表格。 - 静态哈希表 - 基于静态(数组/mmapped/shared)内存的键值对表格。 - 向量 - 实现可增长元素的数组。 - 队列 - 先进先出的实现。 - 栈 - 后进先出的实现。
通用工具 - 字符串 - 输入/输出 - 文件 - IPC、信号量共享内存 - 编解码器 - 哈希 - 系统 - 时间
扩展 - INI格式配置文件解析器。 - Apache格式配置文件解析器。 - 循环文件日志记录器。 - HTTP客户端。 - 数据库(MySQL)接口。
在每个容器的实现中,代码顶部清晰地解释了内部数据结构。因此这对你理解实现思路将非常有帮助。
代码可以在https://github.com/wolkykim/qlibc找到。
希望这会有所帮助。(如果对你有用请点赞,我需要一些积分。谢谢 :)

4

请查看cbase。相比较其他库,它采用LGPL协议(大多数其他库都采用GPL协议),如果许可证是您关心的问题。

我唯一的评论是,它需要C99或GCC。它使用变参宏,这不兼容C89。在VC2005/2008下编译应该没有问题。

cbase是一个C语言库,其中包含了许多实用的函数,使得在System V UNIX上进行系统软件开发更加简单。该库包括内存管理、字符串解析、文件系统遍历、子进程执行、I/O以及常见数据结构(如链表、哈希表、堆栈和队列)的实现。该库还包括对Berkeley套接字的高层接口和类似于cron守护程序功能的调度程序的实现。注意:cbase曾被称为CFL。


3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接