C#(.NET或Mono)基类库中的哪个类直接实现B树,或者可以快速重写/继承以实现B树?我看到了Hashtable类,但似乎找不到Tree
家族的任何类...
必须有一个基础树类,可以通过指定树不变条件来重写生成特定的树实现(如B树或红黑或二叉树等)。让程序员重新发明基本数据结构的轮子是没有意义的(Tree在CompSci中是非常基础的),特别是在面向对象的语言中;所以我很确定我只是不正确地寻找...
编辑:
答案 0 :(得分:8)
.NET中没有(公共)实现B-Tree。
没有公开的通用Tree类提供基于树的结构的部分实现。
您需要从头开始编写类似的内容,或者使用第三方实现而不是.NET实现。
答案 1 :(得分:3)
答案 2 :(得分:2)
我知道我参加聚会的时间非常晚,但我在BPlusTree上取得了很大的成功。作者用它做了很棒的工作。 http://csharptest.net/projects/bplustree/
答案 3 :(得分:1)
您可能希望查看我的B& B的通用C#实现。 GitHub中的B +树。
答案 4 :(得分:0)
B-Tree for .NET on codeplex的实施看起来很有希望。 Performance-wise也是。
代码使用Store API存储&管理键/值对数据。 内部存储实现使用增强的,现代化的B-Tree实现,虚拟化RAM&磁盘存储。
与传统的
相比,这个B-Tree的一些关键增强功能实施是:
- 节点负载优化使其保持在75%-98%的完全平均负载 内在与...叶节点。传统的B树只能实现 半满(50%)平均负载。这转化为更加压缩或 更密集的数据存储使IT部门免受昂贵的存储硬件的影响。
- 叶节点'在特定情况下的高度被容忍不能完全平衡以有利于在零/最小成本的删除速度 交换。此外,由于删除导致的高度差异趋于得到 由于节点负载优化功能,在插入期间修复 上面讨论过。
- 等......在时间允许的情况下等待记录/引用的更多增强功能。