【问题标题】:Are there any open source C libraries with common data structures? [closed]是否有任何具有通用数据结构的开源 C 库? [关闭]
【发布时间】:2010-10-14 16:29:23
【问题描述】:

我正在寻找一个具有常见可重用数据结构(如链表、哈希表等)的 C 库。类似于Mastering Algorithms with C (Paperback) by Kyle Loudon 分发的源代码。

【问题讨论】:

标签: c data-structures


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    gnulib,gnu 可移植库。

    它作为源代码分发。 此列表来自其module list,其中包括大量其他内容。一个有趣的是“c-stack:堆栈溢出处理,导致程序退出”。

    • 列表
    • 数组列表
    • 数组列表
    • 链表
    • avltree 列表
    • rbtree-list
    • 链接哈希列表
    • avltreehash 列表
    • rbtreehash 列表
    • sublist(由另一个列表支持的顺序列表数据类型。)
    • oset(抽象有序集。)
    • 数组设置
    • avltree-oset
    • rbtree-oset

    【讨论】:

    • 请记住,此选项是 GPL 许可的,因此只能在 GPL 许可的软件中合法使用。
    【解决方案3】:

    BSD queue.h 有:

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

    BSD tree.h 有:

    • RB - 红黑树
    • SPLAY - 展开树

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

    【讨论】:

      【解决方案4】:

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

      它非常快,比 glib 还要快。它的灵感来自标准模板库。 Download Here

      另一个解决方案是Attractive Chaos software。 C 宏库:
      kbtree.h:C 语言中的高效 B-tree 库。
      khash.h:C 语言中快速且轻量级的哈希表库。
      kvec.h:C 中的简单矢量容器。

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

      【讨论】:

      • 不错的指针 - 我以前从未听说过 SGLIB。
      • SGLIB 项目的“下载”链接已损坏。好像要倒闭了...:/
      • @luis.espinal 仍然可以从freecode.com/projects/sglib下载
      • 似乎这两个库都已经离开了。
      • klib 有一些活动,但我无法像这样快速找到任何其他哈希表,有人有其他选择吗? github.com/attractivechaos/klib/commits/master
      【解决方案5】:

      AT&T 的software tools。

      【讨论】:

        【解决方案6】:

        GDSL 库可能是值得考虑的好东西:

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

        【讨论】:

          【解决方案7】:

          Apache 可移植运行时。

          【讨论】:

          【解决方案8】:

          【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-09-01
          • 1970-01-01
          • 2010-12-29
          • 1970-01-01
          • 1970-01-01
          • 2011-06-10
          • 2011-02-25
          • 1970-01-01
          相关资源
          最近更新 更多