- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
B樹算法与实现(C语言描述)
这个结构一般用于数据库的索引,综合效率较高。 另外还有一种与此类似的树结构叫B+树,像 Berkerly DB , sqlite , mysql 数据库都使用了B+树算法处理索引。 这两种处理索引的数据结构的不同之处: 1。B树中同一键值不会出现多次,并且它有可能出现在叶结点,也有可能出现在非叶结点中。而B+树的键一定会出现在叶结点中,并且有可能在非叶结点中也有可能重复出现,以维持B+树的平衡。 2。因为B树键位置不定,且在整个树结构中只出现一次,虽然可以节省存储空间,但使得在插入、删除操作复杂度明显增加。B+树相比来说是一种较好的折中。 3。B树的查询效率与键在树中的位置有关,最大时间复杂度与B+树相同(在叶结点的时候),最小时间复杂度为1(在根结点的时候)。而B+树的时候复杂度对某建成的树是固定的。 如果想自己做个小型数据库,可以参考一下下面给出的B树算法的实现,可能会对你有所帮助。 ??其中的注册很详细,不用再多说了。 /* btrees.h */ /* * 平衡多路树的一种重要方案。 * 在 1970 年由 R. Bayer 和 E. McCreight 发明。 */ #define M 1 /* B 树的阶,即非根节点中键的最小数目。 * 有些人把阶定义为非根节点中子树的最大数目。 */ typedef int typekey; typedef struct btnode {????/* B-Tree 节点 */ ????int d;????/* 节点中键的数目 */ ????typekey k[2*M];????/* 键 */ ????char *v[2*M];????/* 值 */ ????struct btnode *p[2*M+1];????/* 指向子树的指针 */ } node, *btree; /* * 每个键的左子树中的所有的键都小于这个键, * 每个键的右子树中的所有的键都大于等于这个键。 * 叶子节点中的每个键都没有子树。 */ /* 当 M 等于 1 时也称为 2-3 树 *????+----+----+ *????| k0 | k1 |???????????????????? *??+-+----+----+--- *??| p0 | p1 | p2 | *??+----+----+----+ */ extern int btree_disp; /* 查找时找到的键在节点中的位置 */ extern char * InsValue; /* 与要插的键相对应的值 */ extern btree search(typekey, btree); extern btree insert(typekey,btree); extern btree delete(typekey,btree); extern int height(btree); extern int count(btree); extern double payload(btree); extern btree deltree(btree); /* end of btrees.h */ /*******************************************************/ /* btrees.c */ #include stdlib.h #include stdio.h #include btrees.h btree search(typekey, btree); btree insert(typekey,btree); btree delete(typekey,btree); int height(btree); int count(btree); double payload(btree); btree deltree(btree); static void InternalInsert(typekey, btree); static void InsInNode(btree, int); static void SplitNode(btree, int); static btree NewRoot(btree); static void InternalDelete(typekey, btree); static void JoinNode(btree, int); static void MoveLeftNode(btree t, int); static void MoveRightNode(btree t, int); static void DelF
您可能关注的文档
- BMC模壓制品缺陷型式发生原因纠正措施.doc
- Blos設置U盘启动图文教程_超详细.doc
- BMS系統招标要求.doc
- BNC腦血管病临床指南.doc
- BNP與其临床应用.doc
- BMS集成管理系統深化设计方案.doc
- BN納米粒子的制备与研究.doc
- Bnhfzmg高級财务会计形成性考核册答案.doc
- BMF節能减排供热合作方案.doc
- BOLL使用詳解图文教程.doc
- 长久物流-市场前景及投资研究报告-整车物流运输领先,反内卷,盈利改善.pdf
- 安徽智能家电行业市场前景及投资研究报告:百尺竿头,聚焦高质量,生态聚合,谱写篇章.pdf
- 中信银行-市场前景及投资研究报告-零售战略推进,对公根基深厚.pdf
- 九洲药业-市场前景及投资研究报告-技术创新核心,创新药CDMO一站式服务平台.pdf
- 华新水泥-市场前景及投资研究报告-水泥国际化先行者,国内反内卷.pdf
- 奢侈品行业2025年市场前景及投资研究报告:培训课件.pdf
- 社会服务行业2025年投资策略分析报告:新消费景气度,关注细分赛道投资.pdf
- 华洋赛车-市场前景及投资研究报告-国内摩托车运动代表品牌,募投项目新增产能.pdf
- 2026届江苏省东台市第一中学高三语文第一学期期末达标测试试题含解析.doc
- 2026届宁夏银川市宁夏大学附中语文高三第一学期期末教学质量检测模拟试题含解析.doc
文档评论(0)