二叉树基本知识点图文介绍(全网最简洁)
一、二叉树相关理论
1.1定义
二叉树是指树中节点的度不超过二的有序树。一棵空树或者一个节点的树也可以称为二叉树,二叉树其左右子树也各种一棵二叉树。
1.2基本分类
有满二叉树和完全二叉树之分。
1.2.1满二叉树
是所有非叶子节点都有且仅存在左右子树的二叉树。
1.2.2完全二叉树
是除最后一层非叶子节点外都有且仅存在左右子树,且最后一层叶子节点从左到右紧密排列,右边连续缺少若干个节点的二叉树
1.3性质
性质1:二叉树第i层至多有(i>0)个节点
性质2:最大深度为h的二叉树至多有个节点
性质3:若任意一棵二叉树有n0个叶子节点,n1个度为2的节点,则必有n0 == n1 + 1
性质4:具有n个节点的完全二叉树最大深度为
性质5:对n个节点完全二叉树从上到下、左到右从1-i开始编号,假设根节点为1,父节点parent,左节点left ,右子节点right,则具有如下公式:
(1)父节点满足:
(2)子节点满足:
1.4二叉树遍历
二叉树在逻辑上虽然是非线性结构,但是在存储时可以用连续数组存储,也可以采用链表,本文讲解主要采用数组结构存储。当遍历二叉树时有四种方式,分别为前序遍历、中序遍历、后序遍历、层次遍历。
其中遍历的划分主要是根据父节点的访问顺序进行划分,下面是每种遍历方式示意图。
1.4.1前序遍历
如图三所示,是一个6个节点的完全二叉树,序号1-6节点对应的不重复关键字分别为ABCDEF,则先遍历的顺序为:先遍历父节点parent,然后遍历左子节点left,再遍历右子节点right,即遍历顺序:
parent ——> left ——> right
图三先序遍历输出结果为:A B D E C F
具体应用可以参考博主这篇博文:https://blog.csdn.net/naibozhuan3744/article/details/121708034
1.4.2中序遍历
中序遍历是先遍历左子节点left,在遍历父节点parent,最后遍历右子节点right,即遍历顺序:
left ——> parent ——> right
图三先序遍历输出结果为:D B E A F C
中序遍历一般应用在二叉搜索数上,二叉搜索树顺序输出是有序数组。
1.4.3后序遍历
后序遍历是先遍历左子节点left,在遍历右子节点right,最后遍历父节点parent,即遍历顺序:
left ——> right ——> parent
图三先序遍历输出结果为:D E B F C A
后序遍历一般用在运算符树,即非叶子节点为符号位,叶子结点是数字位,如图四所示:
通过对图四进行中序遍历可以还原表达式,进行后序遍历可以计算表达式。
1.4.4层次遍历
层次遍历顺序为从左到右、从上到下依次访问每个节点,可以采用队列方式进行遍历,顺序如下:
parent ——> left ——> right
图三先序遍历输出结果为:A B C D E F
层次遍历可以看成是顺序遍历整个存储二叉树的数组。
1.5二叉树的查找
二叉树查找元素有深度优先搜索(DFS)和广度优先搜索(BFS),深度优先搜索一般用递归方式;而广度优先搜索一般采用队列方式。
二叉树基本知识点图文介绍(全网最简洁)相关推荐
- Mysql的Root密码忘记,查看或修改的解决方法(图文介绍)
Mysql的Root密码忘记,查看或修改的解决方法(图文介绍) 参考文章: (1)Mysql的Root密码忘记,查看或修改的解决方法(图文介绍) (2)https://www.cnblogs.com/ ...
- echarts配置项图文介绍——xAxis
echarts配置项图文介绍--xAxis 本文仅用于个人学习笔记,文中出现错误或不恰当请在评论区指出.本文仅介绍稍有难度的配置项,极其简单易懂的配置项请自行移步官网查阅文档. 一.用途 直角坐标系 ...
- 联想拯救者y7000p加内存条_怎么给笔记本升级内存和硬盘 联想Y7000P加装内存和硬盘图文介绍...
一般目前新买的笔记本电脑,大都是标配8GB内存和单块固态硬盘,内存和硬盘容量适中,但对于一些制图设计.偏大型游戏,又或者对硬盘存储要求比较高的用户来说,显然就不太够用,这时候我们一般会通过升级内存和硬 ...
- 图文介绍--光纤接口类型
图文介绍--光纤接口类型ST.SC.FC.LC ST.SC.FC光纤接头是早期不同企业开发形成的标准,使用效果一样,各有优缺点. ST.SC连接器接头常用于一般网络.ST头插入后旋转半周有一卡口固定, ...
- 注销苹果id 显示联系服务器时出现问题,帮您还原连接appleid服务器时出错
【图文介绍】的处理办法_...
近日有小伙伴发现电脑出现问题了,在突然遇到连接appleid服务器时出错 时不知所措了,对于连接appleid服务器时出错 带来的问题,其实很好解决连接appleid服务器时出错 带来的问题,下面小编 ...
- 软件开发知识点基础介绍
软件开发知识点基础介绍 软件:即一系列按照特定顺序组织的计算机数据和指令的集合,有系统软件和应用软件之分. 系统软件:windows,mac,linux,unix,android,ios- 应用软件: ...
- VM虚拟机安装篇·VMware Workstation Pro(虚拟机)安装Win10操作系统(图文介绍超详细)
VMware Workstation Pro(虚拟机)安装Win10操作系统(图文介绍适合小白) 文章目录 VMware Workstation Pro(虚拟机)安装Win10操作系统(图文介绍适合小 ...
- 无限法则服务器角色操作忙,无限法则海岛地图决赛圈打药及火山灰伤害测试图文介绍[多图]...
<无限法则>中海岛图玩家在好不容易来到决赛圈的时候,可能会遇到火山灰.这个时候大家会手忙脚乱,药包不够怎么办?火山灰毒性毒死我怎么办?今天小编就为大家带来无限法则海岛地图决赛圈打药及火山灰 ...
- php 导出mysql 数据库表结构图_导入和导出数据表的图文介绍(phpMyAdmin的使用教程5)...
导入和导出数据表的图文介绍(phpMyAdmin的使用教程5) 导入和导出数据是互逆的两个操作,导入数据是通过扩展名为.sql的文件导入到数据库中,导出数据是将数据表结构,表记录储存为.sql的文件, ...
最新文章
- ThinkPHP框架介绍
- adroid 如何测试端口号_多进程启动设备和appium实现自动化测试
- C语言错误处理方法、C++异常处理方法(throw, try, catch)简介
- win10系统崩溃怎么修复_系统崩溃怎么重装系统图文教程
- 真正解决ASP.NET每一个页面首次访问超级慢的问题 (转载)
- queryrunner带参数的构造函数和不带参数的构造函数有什么区别_再谈构造函数、原型、原型链之间的关系...
- list自定义排序工具类
- OO第二次博客——电梯系列总结
- 手写Spring框架
- 【HUSTOJ】1053: 字符图形9-数字正三角
- 浏览器无法上网解决方法(本人用的google-chrom,其他浏览器类似)
- [LeetCode] 707.设计链表
- 宁波实训day1: java web开发常用工具安装
- 鲁大师12月新机性能/流畅榜:小米系包揽性能榜前三,流畅榜上限再突破!
- php查询后台地址,dedecms 织梦后台查找方法【整理】
- 2020!前端开发应知网站(墙裂推荐!)
- QQ邮箱服务器协议,QQ邮箱新功能 IMAP协议支持
- Spring Boot 起步依赖
- 声源定位之GCC-PHAT算法
- 合适虚拟商品付费下载主题_一款比付费主题更像付费wordpress主题