一、实验目的: 理解二叉树特别是完全二叉树的性质,掌握二叉树的存储结构(二叉链表);熟练掌握二叉树的常用操作算法(初始化、插入结点、删除结点、遍历等);初步掌握二叉树的应用。 二、实验内容: 要求采用二叉链表作为存储结构,完成二叉树的建立,前序、中序和后序遍历的操作,求所有叶子及结点总数的操作等。 具体要求如下: ①给出基于二叉链表的二叉树类的定义; ②给出二叉树初始化(构造函数)的实现; ③给出二叉树三种遍历算法的递归实现; ④二叉树先序遍历的非递归算法实现; ⑤利用二叉树的遍历算法求二叉树的结点数、二叉树的叶结点数、二叉树的高度; ⑥二叉树的撤销删除 三、实验步骤: 1、需求分析: 本演示程序用JAVA编写,完成树的生成,任意位置的插入、删除,以及遍历二叉树中的结点,查找和修改树中元素的值。 ① 输入的形式和输入值的范围:插入元素时需要输入插入的位置和元素的值;删除元素时输入删除元素的位置;遍历时采用三种遍历方法中的一种遍历方法;修改操作时需要输入的元素的值;查找操作时,需要找到要查找元素的位置。在所有输入中,元素的值都是整数。 ② 输出的形式:在所有四种操作中都显示操作是否正确以及操作后树中的内容。其中删除操作后显示删除的元素的值,遍历二叉树中的元素,查找操作、修改操作后显示修改的值。 ③ 程序所能达到的功能:完成树的生成(通过插入操作)、插入、删除、遍历、查找、修改操作。 ④ 测试数据: A. 树中已有以50,25,75,12,37,43,30,33,87,93,97为关键字的结点 B. 插入操作中依次输入10,20,30,40,50,60,70,80,90,100十个数 C. 删除操作中输入10删除值为10的元素 D. 查找操作中输入20,30,40,50返回这个元素在树中的位置 2.概要设计: 1)为了实现上述程序功能,需要定义树的抽象数据类型: public int iData; public double dData; public Node leftChild; public Node rightChild; private Node root;int value; private Node getSuccessor; 基本操作:{ Tree () 操作结果:构造一个空的二叉树 insert () 初始条件:是否存在一个空二叉树 操作结果:往二叉树中插入数值 delete () 初始条件:存在一非空的二叉树 操作条件:将二叉树中的元素删除 displayTree () 初始条件:存在一非空的树 操作条件:显示非空树中的所有元素的值 getString () 初始条件:存在一非空的二叉树 操作结果:返回整个字符串的数值 getChar () 初始条件:存在一非空的二叉树 操作结果:返回字符型的数值 getInt () 初始条件:存在一非空的二叉树 操作结果:返回整型的数值 find () 初始条件:存在一非空二叉树 操作结果:从二叉树中查找某一元素 traverse () 初始条件:存在一非空的二叉树 操作结果:对二叉树中的元素进行遍历 preorder () 初始条件:存在一非空的二叉树 操作结果:对二叉树中的元素进行先根遍历 inOrder () 初始条件:存在一非空的二叉树 操作结果:对二叉树中的元素进行中根遍历 postOrder () 初始条件:存在一非空的二叉树 操作结果:对二叉树中的元素进行后根遍历 DisplayNode () 初始条件:存在一非空的二叉树 操作结果:显示出二叉树中的整形数值和双精度浮点型数值 public static void main 操作结果:调用主函数
2022-12-14 19:34:01 111KB 数据结构树的操作实验报告
1
unity行为树插件Behavior Designer
2022-12-14 19:22:23 4.11MB 行为树 BehaviorDesign BehaivorTree
1
建立一个含任意结点的无向连通网,并用Prim算法构造其最小生成树。
2022-12-14 16:35:33 72KB prim 最小生成树
1
数据结构课程实验 Prim算法构造最小生成树
2022-12-14 16:20:06 75KB Prim算法 最小生成树
1
语言:C++ 软件:vs2019 可以对.txt文件内容进行加密,但是加密字符仅限于ascii表里的字符, 这只是提供一个思路,学会了代码可以自定义编码规则;
2022-12-14 10:36:01 10.9MB 数据结构 二叉树 哈夫曼树 加密解密
1
python实现采用Alpha-Beta剪枝搜索实现黑白棋AI源码(人工智能期末作业).zip 黑白棋 实验要求: 使用 『最小最大搜索』、『Alpha-Beta 剪枝搜索』 或 『蒙特卡洛树搜索算法』 实现 miniAlphaGo for Reversi(三种算法择一即可)。 使用 Python 语言。 算法部分需要自己实现,不要使用现成的包、工具或者接口。 Result: 实现 AIPlayer 类,采用 Alpha-Beta 剪枝搜索实现黑白棋 AI
c代码-二叉树的建立以及先序、中序、后序遍历C语言实现
2022-12-13 19:53:59 1KB 代码
1
c#文件操作,有树视图做的,有点想资源管理器,实现树形浏览全部文件,并且在LISTVIEw显示具体文件的信息,
1
可实现树莓派主动追踪目标,并实现树莓派和pc的信息交互等功能。
2022-12-13 17:28:46 445.04MB 树莓派 gluoncv 目标跟踪
1
基于深度学习+树莓派4b实现控制小车自动驾驶项目python源码+项目详解说明.zip 【部分操作说明】 1.配置树莓派(单独配置SSH文件)使其能够实现基本的操作,如putty连接,vncviewer可视化操作,winscp传输文件等,可在软件中配置 2.准备对应得设备,如杜邦线,螺丝刀,基本的车壳, 3.配置树莓派在小车上,并利用杜邦线连接相对应的电机,这里使用的L298N电机,GPIO口对应得分别是7,11(后轮电机),13,15(前轮电机),并且将电源连接到L298N电机上,注意这里的一定要单独給电机供电,靠树莓派的电压会不够,还有就是这里的接地线,连接到GPIO口9,并与电源的负极短接。可以利用test1back.py,test2front.py进行测试。 4.配置使能端口,这里利用的是GPIO口12,16,可以根据自己的实际需要进行调整,注意拔掉L298N电机上的跳线帽连接。ps:增加使能是因为测试中发现一旦转向, 车轮不能回正因电机保持通电状态需要让电机断电从而释放动力。 等等....... 需自己拥有树莓派4b开发设备及小车配件