B+树C++代码发布

B+树C++代码发布

 

代码:http://bluedog.download.csdn.net

 

没什么太多可以说的,B+树的c++模板实现,需要说明的一点是

1、枝干节点的关键字在每个叶子节点的最后一个

2、叶子节点中的Vals不是值集合,而是值指针集合,主要是减少移动时的拷贝时间

     本来也想Keys也做也指针集合,但是会有一个问题,如果当做数据库的索引,它就必需调阅多个页

     当然Keys是值集合也会有问题,对于字符串来作Key就会有对象拷贝的问题

     因此我觉得要实现两种B+树,一种是值集合的,一种是值指针集合的,

     对此有兴趣的朋友可以共同探讨,发邮件至 xtlxs1976@163.com

3、算法书上说B+树比B-树要简单,它认为被删除的Key仍可以保留在树枝干中,我觉得或许作为

     磁盘或数据库的索引管理是合理的,但作为一个完整的算法B+树比B-树要复杂得多,比如删除一个KEY后的调整有八种情况,而B-树只要考虑四种。

 

本来想找大量数据来测试,开始写了QQwry.dat的转换代码,最新版的大约有30多万条记录,也就是网上流行的纯真IP地址数据库,写完之后发现因为我写的B+树是值类型的,如果进行字符串作KEY,会很慢的,也就没测了。不过QQWry.dat的转换代码还是很好用的,也在这个RAR文件中,你需要的可以用一用。

 

好了,还是老样子,如果你发现了bug或者你在程序中使用了这个类,请发个mail给我!

 

 

 

 

相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页