数据结构实验的实验报告--B树

news2024/11/14 15:06:25

访问【WRITE-BUG数字空间】_[内附完整源码和文档]

数据结构实验的实验报告–B树

环境及工具
环境:C

工具:AnyivewCL

B 定义
一棵 m 阶 B 树(Balance Tree of order m), 或为空树,或满足下列的特性的 m 叉树:(本次实验采用链式存储结构)

(1)树中每个结点最多含有 m 棵子树。

(2)若根结点是非终端结点,则至少有 2 棵子树

(3)除根结点之外的所有非终端结点至少有「m/2 棵子树。

(4)每个非终端结点中包含信息:(n,A,K1,A1,K2,A2,…,Kn,An)。其中:

①K(1≤i≤n)为关键字,且关键字按升序推入指针。

②A(0≤≤n)指向子树的根结点,A(i-1)指向子树中所有结点的关键字均小于 Ki,且大于 K(i-1)。

③ 关键字的个数 n 必须满足「m/2-1≤n≤m-1。

(5)所有叶子结点都出现在同一层,叶子结点不包含任何信息(可以看作是外部结点或查找失败的结点,实际上这些结点不存在,指向这些结点的指针为空。实际上,B 树的结点还应包含 n 个指向每个关键字相应记录的指针。这与应用相关,从略。

存储结构定义和宏定义

define M 4 //B树的阶,本次实验设置为4 # define MAX M – 1 //每个节点存储的最多关键字的数目 # define MIN M/2 //每个节点存储的最少关键字的数目 # define N 14 //选取14个关键字的树作为例子 # define ERROR 0 # define SUCCESS 1 # define TRUE 1 # define UNSUCCESS 0 # define OVERFLOW -1 # define FALSE -1 typedef int Status; typedef int KeyType;//关键字类型为整形 typedef struct BTNode { int keynum; //当前节点的关键字数目 KeyType key[M + 1]; //关键字数组,key[0]未用 struct BTNode parent; //双亲结点指针 struct BTNode ptr[M + 1]; //孩子节点指针数组 //Record recptr[M + 1]; //记录指针向量,0号单元未用 } BTNode, BTree; //B树的节点及指针类型 //B树查找的结果类型 typedef struct { int tag; //1:查找成功,0:查找失败 BTree pt; //指向找到的结果类型 int index; //1 <= index <= M 在节点中的关键字位序 } Result;在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/509239.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SSM框架学习-加载properties文件

1. 创建新的命名空间 将 xmlns"http://www.springframework.org/schema/beans" 复制修改为 xmlns:context"http://www.springframework.org/schema/context" 再添加进去 表示开辟一个新的命名空间&#xff0c;叫做context 在xsi:schemaLocation中&#xff…

为什么耳鸣越来越年轻化了

耳鸣是一种声幻觉&#xff0c;当出现耳鸣的情况的时候&#xff0c;很多人都表示&#xff0c;耳朵总觉得听到很多奇怪的声音&#xff0c;甚至有时候还能听到车鸣笛声、或是轮船鸣笛声&#xff0c;但是附近并没有汽车轮船。 耳鸣&#xff0c;是一种没有外界声源情况下&#xff0c…

MapReduce框架原理

从源码的角度 :map --> sort —> copy --> sort -->reduce   sort —> copy --> sort属于shuffle InputFormat数据输入 切片与MapTask并行度决定机制 1&#xff09;问题引出 MapTask的并行度决定Map阶段的任务处理并发度&#xff0c;进而影响到整个Job的…

每日一个小技巧:1分钟告诉你视频转文字软件哪个好用

如果你曾经遇到过观看视频时无法边看边记笔记的尴尬&#xff0c;或是在听取讲座、会议录屏时错过关键词汇&#xff0c;那么这里有一个好的解决方法——使用视频转文字技术帮助你获取重要信息。通过这项技术&#xff0c;我们可以将视频中的内容转换成易于搜索和阅读的文字&#…

第一行代码 第八章 运用手机多媒体

第八章 运用手机多媒体 使用通知 通知&#xff08;Notification&#xff09;是Android系统中比较有特色的一个功能&#xff0c;当某个应用程序希望向用户发出一些提示信息&#xff0c;而该应用程序又不在前台运行时&#xff0c;就可以借助通知来实现。发出一条通知后&#xf…

2023年免费自动养站程序

什么是养站&#xff1f;SEO是与搜索引擎建立信任的过程&#xff0c;养站不仅仅是建立一个网站&#xff0c;还需要我们不断的更新和维护&#xff0c;才能使网站长时间稳定运行并获得更好的排名。今天跟大家分享如何建站以及如何养站。 一、明确TDK 在设计网站时&#xff0c;我…

无公网IP,公网SSH可远程访问家中的树莓派

文章目录 前言如何通过 SSH 连接到树莓派步骤1. 在 Raspberry Pi 上启用 SSH步骤2. 查找树莓派的 IP 地址步骤3. SSH 到你的树莓派步骤 4. 在任何地点访问家中的树莓派4.1 安装 Cpolar内网穿透4.2 cpolar进行token认证4.3 配置cpolar服务开机自启动4.4 查看映射到公网的隧道地址…

“土狗”的季节,meme热潮回归

文/章鱼哥 出品/陀螺财经 meme代币的热度好像又回来了&#xff0c;两周前推出的PEPE创下了历史新高。尽管加密货币市场仍处于漫长熊市中&#xff0c;但人们似乎仍然对风险投资保有兴趣。 meme代币作为基于互联网模因的高波动数字资产&#xff0c;似乎没有太多实用性。它们的价格…

屏幕录制大师哪款好用?这3款录屏工具,值得推荐!

案例&#xff1a;电脑录屏工具哪一款比较好用&#xff1f; 【我一般用手机拍电脑上需要录制的内容&#xff0c;但是拍出来的视频画面小且不清晰。朋友说可以使用电脑录屏软件录制电脑屏幕&#xff0c;但我以前没有用过&#xff0c;不知道哪款好用&#xff1f;家人们有没有推荐…

文件找回工具,值得推荐的4款!

例&#xff1a;文件找回工具 【对于我这种粗心大意经常丢失文件的人来说&#xff0c;有好用的文件找回工具实在太重要啦&#xff01;大家可以给我推荐一些好用的文件找回工具吗&#xff1f;感谢感谢&#xff01;】 当我们在使用电脑时&#xff0c;经常会遇到文件丢失的情况&a…

Java 如何在 Array 和 List 之间进行转换

概述 在本文章中&#xff0c;我们对如何在 Java 中对 Array 和 List 进行转换进行一些说明和示例。 这些示例通过使用 Core Java 和一些第三方的转换工具&#xff0c;例如 Guava 和 Apache Commons Collections。 更多有关的文章&#xff0c;请访问&#xff1a;Java - OSSEZ …

c++ 11标准模板(STL) std::vector (十一)

定义于头文件 <vector> template< class T, class Allocator std::allocator<T> > class vector;(1)namespace pmr { template <class T> using vector std::vector<T, std::pmr::polymorphic_allocator<T>>; }(2)(C17…

单元测试 - 注解篇

1. RunWith 指定单测的运行环境 RunWith(JUnit4.class) - JUnit4环境RunWith(MockitoJUnitRunner.class) - Mock环境RunWith(SpringJUnit4ClassRunner.class) / RunWith(SpringRunner.class) - Spring环境 ps: SpringJUnit4ClassRunner 与 SpringRunner区别 SpringRunner继承…

Gradio的web界面演示与交互机器学习模型,分享应用《3》

Gradio的web界面演示与交互机器学习模型&#xff0c;安装和使用《1》https://blog.csdn.net/weixin_41896770/article/details/130540360Gradio的web界面演示与交互机器学习模型&#xff0c;主要特征《2》https://blog.csdn.net/weixin_41896770/article/details/130556692 前…

pywinauto使用教程

这里写自定义目录标题 引入pycharm项目新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个注脚注…

JDK的版本迭代(JDK9 - JDK20)

文章目录 1. 发布特点2. 名词解释Oracle JDK和Open JDKJEPLTS 3. 各版本支持时间路线图4. 各版本介绍jdk 9jdk 10jdk 11jdk 12jdk 13jdk 14jdk 15jdk 16jdk 17jdk 18jdk 19jdk 20 5. JDK各版本下载链接6. 应该如何学习新特性 1. 发布特点 发行版本发行时间备注Java 1.01996.01…

[Java]JavaWeb学习笔记(动力节点老杜2022)【Javaweb+MVC架构模式完结】

文章目录 &#x1f97d; 视频对应资料&#x1f97d; Tomcat服务器&#x1f30a; 下载与安装&#x1f30a; 关于Tomcat服务器的目录&#x1f30a; 启动Tomcat&#x1f30a; 实现一个最基本的web应用&#xff08;这个web应用中没有java小程序&#xff09; &#x1f97d; 静态资源…

(附源码)springboot学生宿舍管理系统 毕业设计 211955

摘 要 科技进步的飞速发展引起人们日常生活的巨大变化&#xff0c;电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用。信息时代的到来已成为不可阻挡的时尚潮流&#xff0c;人类发展的历史正进入一个新时代。在现实运用中&#xff0c;应用软件的工作…

人工智能AI到底能AI到什么程度?

作为引领新一轮科技革命和产业变革的重要驱动力&#xff0c;人工智能催生了大批新产品、新技术、新业态和新模式。日前&#xff0c;全新的聊天机器人模型ChatGPT因其强大的语言理解和文本生成能力&#xff0c;引发自“阿尔法狗”后大众对人工智能的第二波关注高潮。 据悉&…

Java笔记_14(集合进阶2)

Java笔记_14 一、双列集合1.1、Map的常见API1.2、Map遍历方式一&#xff08;键找值&#xff09;1.3、Map集合遍历方法二&#xff08;键值对&#xff09;1.4、Map集合遍历方法三&#xff08;lambda表达式&#xff09;1.5、HashMap1.6、HashMap练习1.7、HashMap底层源码解析1.8、…