Visual C++ 7.1Visual C++ 8.0Windows VistaVisual C++ 7.0C++/CLIVisual Studio 2008Visual C++ 6.0高级C中级开发Visual StudioWindowsC++
我使用模板开发了一个B+树,请多多享用。
B+Tree

引言
这是一个B+树的实现。
背景
数据库系统基础。第五版。韩语翻译。
使用代码
包含 BPNode.h 和 BPTree.h。
你可以像下面这样使用 CBPTree<Key, Value, Degree>。
Degree 的默认值为 2。
// using bptree #include "BPNode.h" #include "BPTree.h" CBPTree<int, std::string> bpTree; // Supports B+Tree Insert, Delete command. bpTree.Insert(10, "This is a test"); std::string s; if(bpTree.Search(10, s)) { cout << s; } else { cerr << "Key not found" << endl; } // Also support an iterator. CBPTree<int, std::string>::iterator i; for(i = bpTree.begin(); i != bpTree.end(); i++) { cout << *i << " "; }
请参考源代码了解如何使用它。
我使用 Visual Studio 2008 开发的。但是,我尝试编写使其能够与任何 C++ 编译器一起工作。我想在 Linux 上编译它。但我没有 Linux 机器。如果有人尝试,请告诉我结果。
当你在 VS2008 中打开项目时,你可以看到索引(中间)节点和叶节点是如何分裂的。请不要责怪我画得粗糙。;)
我将改进它以支持 [] 运算符,就像 std::map 一样。
进一步的改进将支持基于磁盘的 B+树,更通用的节点类等。
请告诉我你的评论、建议、测试结果或错误…
收到任何反馈我都会非常高兴。
关注点
制作一个美观的 UI 总是很难。;)
历史
2008. 9. 16. 首次上传。