java已知一个二叉树_#二叉树复习#

#二叉树复习#

目录

满二叉树

完全二叉树

平衡二叉树

二叉树的主要性质

--二叉树的度

--二叉树的深度计算

二叉树的遍历

其他

符号变量

103edc198b5bc43b479ff6b49bf0ab0c.png    结点总数

132b19803d49d1cc92cf3ccf263a8e6a.png    深度

84aaa34ce28da7b8d73baf91b05fb5b4.png    度为0的结点数/叶子结点数

b33e93c857c3a87a667460983389c257.png    度为1的结点数

67727df3787e681dc4e9f4fa85c89820.png    度为2的结点数

什么是满二叉树?

二叉树每层的结点数为a31adab46eaff74d736405f60cdedd85.png

满二叉树总结点数:eaa4f2712f39a032843312caf7676b71.png

d14e1c9352e1ef4d15f705e9f71c01f9.png

图1:满二叉树

什么是完全二叉树?

每一个结点的编号都与满二叉树一一对应(自上而下,从左往右)。

完全二叉树的结点数

fc674e03a0b99f02c5a744e56cdd7815.png

001c5ff693c4b6b9a230f6be7009f3a6.png3ef8fc138c455ae6f13a71f0e4cf7616.png

b982d28df338a2967615e5e86ebb8489.png

图2:完全二叉树

下面这种就不是完全二叉树,因为编号没有一一对应

327602c21e1bf1fdf2fe59b94ab5e9c9.png

图3:非完全二叉树

平衡二叉树

任意节点的子树的高度差(左子树的结点数-右子数的结点数)都小于等于1。

可以是空树。

假如不是空树,任何一个结点的左子树与右子树都是平衡二叉树,并且高度之差的绝对值不超过 1。

二叉树的主要性质

二叉树的度

在二叉树中,度为0的结点数比度为2的结点数为1

d14e1c9352e1ef4d15f705e9f71c01f9.png

图4:满二叉树

图中度为2的结点数为3,度为0的结点数为4

1842cda2ba34e38ea3348b336804c250.png

274ee023ca5184ac2eb2bdd4aab3f7f5.png

a237339ea2d09379299c42df140d055c.png

二叉树的深度计算

深度为132b19803d49d1cc92cf3ccf263a8e6a.png的二叉树中,最大结点数

2a35eba21527f8bf01350bde1bf9c2d2.png

通过数学变换得到

4e451a290c8367e565615f395cb73f5b.png

二叉树的遍历分为前序遍历、中序遍历和后序遍历

d14e1c9352e1ef4d15f705e9f71c01f9.png

图5:满二叉树

拿图5的满二叉树为例

前序遍历结果为:A BDE CFG(根左右);

中序遍历结果为:DBE A FCG(左根右);

后序遍历结果为:DEB FGC A(左右根);

问答题

(1)已知一棵完全二叉树的第 4 层有 4 个叶子节点(树根为第 1 层),则这棵完全二叉树的节点个数最多有几个结点?

c201b45fc89a9e638a87f85d7ed7c6f6.png

图6:最少情况下的完全二叉树

最少情况下需要3023f68c8b0780666c44170387114daa.png个结点

3e44e95cecf03887833e05251a122e6e.png

图7:最多情况下的完全二叉树

最多情况下的完全二叉树需要641b37c3760c8519b24f3148b0386ceb.png个结点。

平衡(AVL)二叉树查找效率最高。

二叉查找树上查找的时间复杂度有可能是 O(N)。

平衡二叉查找树上查找的时间复杂度有可能是 O(log2N)。

完全二叉树能用数组来表示。

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

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

相关文章

hashtable - hashmap

http://www.importnew.com/24822.html转载于:https://www.cnblogs.com/qinqiu/p/9711147.html

java 反射机制_基础篇:深入解析JAVA反射机制

反射的概念java 的放射机制:在程序运行时,程序有能力获取一个类的所有方法和属性;并且对于任意一个对象,可以调用它的任意方法或者获取其属性通俗解析:java 文件需要编译成. class 文件才能被 jvm 加载使用, 对象的. c…

构建之法阅读笔记01

本学期阅读计划有两个,一个是《构建之法》,另一个是《大道至简》。 在快速阅读构建之法后,我想提一下几个问题: 1、软件程序软件工程,那么只会软件工程是怎样具体详细的将程序变成合格的软件的? 2、效能分析…

html div float center,跨浏览器实现float:center

跨浏览器实现float:center互联网 发布时间:2008-10-17 19:26:11 作者:佚名 我要评论原文:http://www.macji.com/blog/article/to-achieve-cross-browser-css-float-center/to-achieve-cross-browser-css-float-center/我们都知道float…

博弈论中:纳什均衡、纯策略纳什均衡、混合策略纳什均衡、占优策略

纳什均衡 纳什均衡是由约翰福布斯纳什(John Forbes Nash)在20世纪50年代提出的博弈论概念,用于描述博弈中的一种稳定状态。在纳什均衡状态下,每个参与者都假定其他参与者的策略是已知的,他们选择的策略是最优的&#…

工具_HBuilder使用快捷方式

HBuilder常用快捷键大概共9类(【4 13 3】文件、编辑、插入;【4 9 8】选择、跳转、查找;【1 1 6】运行、工具、视图) 1.文件(4) 新建 Ctrl N 关闭 Ctrl F4 全部关闭 Ctrl Shift F4 属性 Alt Enter 2.编辑(13) 激活代码助…

oracle左连接没用_一周零基础学完Oracle数据库第三天02

四、 多表查询1 什么是多表查询多表查询:当查询的数据并不是来源一个表时,需要使用多表链接操作完成查询。根据 不同表中的数据之间的关系查询相关联的数据。多表链接方式: 内连接:连接两个表,通过相等或不等判断链接列…

weblogic启动项目报错找不到类_启动类报错是经常出现的事但是单一的从一个地方找原因会越找越错...

Error starting ApplicationContext. To display the conditions report rerun your application with debug enabled.当我们看到这个报错的时候有的说是jar包重复,有的说是Controller包和Application包处于平行位置,还有的觉得是RequestMapping的valu…

fis

fis3实时刷新 npm install -g fis3 进入相关目录 发布: fis3 release 启动: fis3 server start // 服务启动后,会一直存在,重启或者fis3 server stop 才会关闭服务 自动刷新 fis3 release -wL关闭服务 fis3 server stop …

深入理解javascript原型和闭包(7)——原型的灵活性

在Java和C#中,你可以简单的理解class是一个模子,对象就是被这个模子压出来的一批一批月饼(中秋节刚过完)。压个啥样,就得是个啥样,不能随便动,动一动就坏了。 而在javascript中,就没…

微型计算机一般不采用的控制方式,微型计算机控制作业.doc

作业一PID控制器引言在实际的过程控制与运动控制系统中,PID家族占据有相当的地位,据统计,工业控制的控制器中PID类控制占有90%以上。PID控制器是最早出现的控制器类型,因为其结构简单,各个控制器参数有着明显的物理意义…

js根据毫米/厘米算像素px

<html><meta http-equiv"content-type" content"text/html;charsetutf-8"><body> 纸张宽度(毫米mm)&#xff1a;<input type"text" id"width" value"10"> <span id"width_px"><…

c语言为什么有这么多的编程环境?_为什么98%的程序员学编程都会从C语言开始?...

在互联网蓬勃发展的时代&#xff0c;有一类人做出了巨大的贡献&#xff0c;这一群人被大家称之为程序员&#xff0c;怎样才能成为一名优秀的程序员呢&#xff0c;为什么每一个程序员都需要学习C语言呢&#xff1f;就让我来跟大家分享分享&#xff1a;壹第一&#xff1a;相比较其…

怎么把电脑上的python软件卸载干净_怎么把一个软件卸载干净_把一个软件卸载干净的两种方法-系统城...

平时使用电脑肯定有卸载软件的操作&#xff0c;一般人直接用户桌面的快捷方式删除&#xff0c;表示软件已经卸载干净了&#xff0c;因为在桌面已经看不见了。其实大部分都没有卸载干净&#xff0c;如果没卸载干净&#xff0c;下载就无法安装了&#xff0c;因为之前还有残留文件…

2.x最终照着教程,成功使用OpenGL ES 绘制纹理贴图,添加了灰度图

在之前成功绘制变色的几何图形之后&#xff0c;今天利用Openg ES的可编程管线绘制出第一张纹理。学校时候不知道OpenGL的重要性&#xff0c;怕晦涩的语法。没有跟老师学习OpenGL的环境配置&#xff0c;现在仅仅能利用cocos2dx 2.2.3 配置好的环境学习OpenGL ES。源码来自《coco…

C# Dapper 简单实例

/// <summary>/// 分页信息/// </summary>public class PageInfo<T>{/// <summary>/// 分页信息/// </summary>public PageInfo(){}/// <summary>/// 总页数/// </summary>public long TotalCount{get; set;}/// <summary>///…

Angular 星级评分组件

一、需求演变及描述&#xff1a; 1. 有一个“客户对公司的总体评价”的字段&#xff08;evalutation&#xff09;。字段为枚举类型&#xff0c;0-5&#xff0c;对应关系为&#xff1a;0-暂无评价&#xff0c;1-很差&#xff0c;2-差&#xff0c;3-一般&#xff0c;4-好&#xf…

计算机网络怎么查看连接打印机驱动,如何检测网络打印机是否已成功连接到计算机[检测方法]...

大概很多婴儿都像以前的编辑一样. 使用网络打印机时&#xff0c;有时它们可​​以打印打印机没有和电脑连接&#xff0c;有时却不能. 那么如何检测网络打印机是否已成功连接到计算机&#xff1f;跟随编辑器往下看.系统反复提示“无法打印”&#xff0c;因此本来很忙的小修几乎快…

eclipse python插件_pydev插件下载-eclipse中的python插件下载6.0.0 官网最新版-西西软件下载...

在eclipse中安装python所需的插件。PyDev for Eclipse 是一个功能强大且易用的 Eclipse Python IDE 插件。利用 PyDev 插件把 Eclipse 变为功能强大且易用的 Python IDE&#xff0c;如何利用其进行 Python 程序的开发和调试。安装方法&#xff1a;一种比较随意的方法就是把压缩…

a - 数据结构实验之图论一:基于邻接矩阵的广度优先搜索遍历_数据结构--图

故事凌 今天基本知识点图可说是所有数据结构里面知识点最丰富的一个, 自己笨的知识点如下:阶(oRDER), 度: 出度(out-Degree), 入度(in-Degree)树(Tree), 森林(Forest), 环(Loop)有向图(Directed Graph), 无向图(Undirected Graph), 完全有向图, 完全无向图连通图(Connected Gra…