什么是 C 中好的开源 B-tree 实现? [关闭]

Posted

技术标签:

【中文标题】什么是 C 中好的开源 B-tree 实现? [关闭]【英文标题】:What is a good open source B-tree implementation in C? [closed] 【发布时间】:2010-09-07 03:18:45 【问题描述】:

我正在寻找用 C 编写的 B-tree 库的精简且构建良好的开源实现。它需要在非 GPL 许可下才能用于商业应用程序。理想情况下,该库支持将 B-tree 索引存储/操作为磁盘文件,以便可以使用可配置(即:最小)RAM 占用空间构建大型树。

注意:由于似乎有些混淆,二叉树和 B-Tree 是一回事。

【问题讨论】:

【参考方案1】:

SQLite implementation 的作者已放弃版权。如果 LGPL 没问题,那么也许你可以使用GNUpdate's implementation?

【讨论】:

GNUpdate 是一个 B+Tree【参考方案2】:

查看 QDBM:http://fallabs.com/qdbm/。它是 LGPL(可用于商业应用程序),使用任意键/值对实现磁盘支持的哈希和/或 B+ 树,并构建在各种平台上。

【讨论】:

不错! - 这是对列表的一个很好的补充。谢谢! 再想一想,我认为这也应该是首选答案。【参考方案3】:

如果 LGPL 没问题,那么 Tokyo Cabinet 可能符合要求。 LGPL 允许与非免费应用程序链接,而不会对最终产品的分发添加任何限制。

【讨论】:

好像移到fallabs.com/tokyocabinet了。 Kyoto Cabinet 是 Tokyo Cabinet 的 GPL 后续版本,但使用一段时间后它有一些非常不好的习惯,例如 std::bad_alloc 没有异常处理等应用程序崩溃或未定义和无限制的内存使用模式。【参考方案4】:

Attractive Chaos 实现 kbtree.h。这是一个高效的 B-tree 库

【讨论】:

【参考方案5】:

我遇到了this - 用于 SCM、Java、C# 和 C 的 WB B-Tree 数据库,它是一个 GNU 包。

【讨论】:

【参考方案6】:

也许你可以考虑 berkeley db。它在内部使用 b-tree。

【讨论】:

以上是关于什么是 C 中好的开源 B-tree 实现? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

WPF中好的NumericUpDown等价物? [关闭]

学习笔记之一:学习中好的试题

学习笔记:项目中好的编程习惯

mvc自定义全局异常处理

leetcode-11:1814. 统计一个数组中好对子的数目

leetcode-11:1814. 统计一个数组中好对子的数目