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给我!

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值