【问题标题】:Standard data structure library in C? [closed]C中的标准数据结构库?
【发布时间】:2010-12-21 14:57:09
【问题描述】:

我正在寻找 C 语言(Windows 平台)中经过试验和测试的标准库,它实现了堆栈、队列、树等数据结构。

我希望附带一个源代码。自己写一个库是可能的;但是,我觉得选择一些行业标准实现可能会更好,这些实现可能会经过优化且错误更少。

编译器是 Visual Studio 2005/2008。

【问题讨论】:

    标签: c windows data-structures


    【解决方案1】:

    Glib

    下载 Glib for Windows here

    【讨论】:

    • 我正在寻找一些可以直接合并到我的项目中的本机 Windows 源代码。 GLib 还附带了许多我不感兴趣的其他插件。我只想要数据结构库。不过会详细检查。
    • “本机 windows 源”是什么意思?
    • 在 Visual c++ 上编译,没有任何附加依赖项。相反,我的意思是,在 Visual C++ 中编译的符合 ANSI C 标准的代码。当我尝试查看 Glib 时,它需要我使用 GTK+ 站点。我知道它是库的一部分,是更大的 GTK+ 框架的一部分。如果我错了,请纠正我。
    • 为了编译您的应用程序,您只需要 Glib,而不是完整的 GTK+(当然,如果您不使用 GTK+)
    • gtk.org/download-windows.html 在工具链部分它说:具体来说,这意味着您不应该在不知道自己在做什么的情况下使用比 Visual C++ 6 更新的 Microsoft 编译器版本。我还没有在 Visual Studio 2008 上编译它。
    【解决方案2】:
    • GDSL。根据文档,它是纯 ANSI C,应该与 Visual C++ 一起使用。
    • C-generic-library
    • Kompimi。 C 数据结构库,侧重于集合。附带 Visual Studio 项目文件。

    【讨论】:

    • GDSL - 来自主页的信息。 GSL 是在 Debian GNU/Linux 上使用 gcc 开发的。它应该建立在任何带有 gcc 的 GNU/linux 发行版上。 GDSL 已在以下发行版下成功测试:Debian Mandrake RedHat 我将尝试在 Visual c++ 中编译。
    • Kompimi 处于 alpha 版本。我宁愿为我的应用程序提供一个久经考验的库。否则我会从给出例子的书中写出我自己的。对于 C 通用库,我无法在下载部分获得代码,甚至无法查看 svn。
    【解决方案3】:

    查看cbase。如果许可是您关心的问题,它的 LGPL(大多数其他库都是 GPL)。

    我唯一的意见是它需要 C99 或 GCC。它使用不兼容 C89 的可变参数宏。在VC2005/2008下应该可以正常编译。

    cbase 是一个包含有用函数的 C 库,可简化 System V UNIX 上的系统软件开发。该库包括用于内存管理、字符串解析、文件系统遍历、子进程执行、I/O 的例程,以及常见数据结构(如链表、哈希表、堆栈和队列)的实现。该库还包括一个到 Berkeley 套接字的高级接口,以及一个调度程序的实现,该调度程序的功能与 cron 守护程序的功能非常相似。注意:cbase 以前称为 CFL。

    【讨论】:

      【解决方案4】:

      你检查过 qLibc 吗?它是一个开源的 C 实现,提供各种类型的数据结构,如哈希表、链表、队列、堆栈......

      截至今天,从它的网站上我看到它具有以下功能集:

      • 容器
        • 列表 --- 双链表。
        • List Table --- 在链表上实现的 KEY/VALUE 配对表。
        • 哈希表 --- 基于哈希的 KEY/VALUE 配对表。
        • 静态哈希表 --- 基于静态(数组/映射/共享)内存的 KEY/VALUE 配对表。
        • Vector --- 实现一个可增长的元素数组。
        • 队列 --- FIFO(先进先出)实现。
        • 堆栈 --- LIFO(后进先出)实施。
      • 通用实用程序。
        • 字符串
        • I/O
        • 文件
        • IPC、信号量共享内存
        • 编码器/解码器
        • 哈希
        • 系统
        • 时间
      • 扩展
        • INI 样式的配置文件解析器。
        • Apache 风格的配置文件解析器。
        • 旋转文件记录器。
        • HTTP 客户端。
        • 数据库(MySQL)接口。

      在每个容器实现中,在代码顶部清楚地解释了内部数据结构。因此,了解实施思路会对您有所帮助。

      代码可以在https://github.com/wolkykim/qlibc找到

      希望这会有所帮助。 (如果这有帮助,请投票,我需要一些积分。谢谢:)

      【讨论】:

        【解决方案5】:

        你可能想看看http://www.liblfds.org/

        【讨论】:

          猜你喜欢
          • 2012-04-21
          • 2014-05-18
          • 1970-01-01
          • 2015-05-23
          • 1970-01-01
          • 2014-01-30
          • 1970-01-01
          • 1970-01-01
          • 2016-08-23
          相关资源
          最近更新 更多