二叉树全分析(超详细总结建议收藏)

简介: 二叉树全分析(超详细总结建议收藏)

前言


二叉树


二叉树(Binary tree)是树形结构的一个重要类型。许多实际问题抽象出来的数据结构往往是二叉树形式,即使是一般的树也能简单地转换为二叉树,而且二叉树的存储结构及其算法都较为简单,因此二叉树显得特别重要。二叉树特点是每个节点最多只能有两棵子树,且有左右之分 。


二叉树(binary tree)是指树中节点的度不大于2的有序树,它是一种最简单且最重要的树。

二叉树的递归定义为:二叉树是一棵空树,或者是一棵由一个根节点和两棵互不相交的,分别称作根的左子树和右子树组成的非空树;左子树和右子树又同样都是二叉树。

二叉树是n个有限元素的集合,该集合或者为空、或者由一个称为根(root)的元素及两个不相交的、被分别称为左子树和右子树的二叉树组成,是有序树。当集合为空时,称该二叉树为空二叉树。在二叉树中,一个元素也称作一个节点 。


1684820445049.png


相关概念


节点:包含一个数据元素及若干指向子树分支的信息。

节点的度:一个节点拥有子树的数目称为节点的度。

叶子节点:也称为终端节点,没有子树的节点或者度为零的节点。

分支节点:也称为非终端节点,度不为零的节点称为非终端节点。

树的度:树中所有节点的度的最大值。

节点的层次:从根节点开始,假设根节点为第1层,根节点的子节点为第2层,依此类推,如果某一个节点位于第L层,则其子节点位于第L+1层 。

树的深度:也称为树的高度,树中所有节点的层次最大值称为树的深度。

有序树:如果树中各棵子树的次序是有先后次序,则称该树为有序树。

无序树:如果树中各棵子树的次序没有先后次序,则称该树为无序树。

森林:由m(m≥0)棵互不相交的树构成一片森林。如果把一棵非空的树的根节点删除,则该树就变成了一片森林,森林中的树

由原来根节点的各棵子树构成。



47994ba1548ab728e895df21ba145b27_b54c04a71e5c4f54a2c4532ecf648a4c.png


1684820471944.png


二叉树的性质


1:二叉树的第i层上至多有2i-1(i≥1)个节点 。

2:深度为h的二叉树中至多含有2h-1个节点 。

3:若在任意一棵二叉树中,有n0个叶子节点,有n2个度为2的节点,则必有n0=n2+1。

4:具有n个节点的满二叉树深为log2n+1。

5:若对一棵有n个节点的完全二叉树进行顺序编号(1≤i≤n),那么,对于编号为i(i≥1)的节点:

当i=1时,该节点为根,它无双亲节点。

当i>1时,该节点的双亲节点的编号为i/2。

若2i≤n,则有编号为2i的左节点,否则没有左节点。

若2i+1≤n,则有编号为2i+1的右节点,否则没有右节点


二叉树的五种基本形态


我们知道二又树是有限元素的集合,该集合或者为空,或者由一个称为根(root)的元素及两个不相交的、被分别称为左子树和右子树的二叉树组成。


空二叉树


当集合为空时,称该二又树为空二又树(顾名思义它什么都没有🤪🤪🤪)


1684820497223.png


只有一个根节点的二叉树


显然它只有一个根结点


1684820507641.png


没有任何结点的树才是空二叉树


只有根节点和左子树TL的二叉树


每个有孩子的结点都只有左孩子结点的二叉树


1684820523278.png


只有根节点和右子树TR的二叉树

每个有孩子的结点都只有右孩子结点的二叉树


1684820538475.png


完全二叉树


完全二叉树从根结点到倒数第二层满足完美二叉树,最后一层可以不完全填充,其叶子结点都靠左对齐。


1684820549471.png


叶子结点只能出现在最下层和次下层。

最下层的叶子结点集中在树的左部。

倒数第二层若存在叶子结点,一定在右部连续位置。

如果结点度为1,则该结点只有左孩子,即没有右子树。

同样结点数目的二叉树,完全二叉树深度最小。


1684820564708.png


特殊的二叉树


在二叉树的这个大家族中肯定存在一些特殊的例子,它们有着二叉树的性质,却又与众不同。


满二叉树


一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是满二叉树。也就是说,如果一个二叉树的深度为K,且结点总数是(2^k) -1 ,则它就是满二叉树。(一棵满二叉树的每一个结点要么是叶子结点,要么它有两个子结点,但是反过来不成立,因为完全二叉树也满足这个要求,但不是满二叉树)

满二叉树一定是完全二叉树,完全二叉树不一定是满二叉树。


有意思的是在国外教材中关于满二叉树的定义是这样的:a binary tree T is full if each node is either a leaf or possesses exactly two childnodes.(如果一棵二叉树的结点要么是叶子结点,要么它有两个子结点,这样的树就是满二叉树)


1684820575129.png


叶子只能出现在最下一层。出现在其它层就不可能达成平衡。

非叶子结点的度一定是2。

在同样深度的二叉树中,满二叉树的结点个数最多,叶子数最多。


斜二叉树


所有的结点都只有左子树的二叉树叫左斜树。所有结点都是只有右子树的二叉树叫右斜树。这两者统称为斜树


1684820586092.png


度为1;

只有左子节点或右子节点;



小结


好了关于二叉树的基本知识就讲到这了,关于二叉树的更多内容未来我会持续更新,希望这篇文章对你有帮助,下次见

相关文章
|
SQL 分布式计算 MaxCompute
MaxCompute SQL使用小技巧之时间日期处理
业务需求分析中经常会对时间日期进行处理,MaxComputer中也有很多关于日期的处理函数,文章就是对这些内置函数相互嵌套使用达到分析要求的分析
6593 0
|
SQL 人工智能 Rust
使用VScode搭建Rust开发环境
使用VScode搭建Rust开发环境
使用VScode搭建Rust开发环境
|
7月前
|
人工智能 API iOS开发
新手小白抄作业!2026年OpenClaw(Clawdbot)一键部署教程+接入iMessage指南
在AI智能体全民普及的2026年,OpenClaw(原Clawdbot,曾用名MoltBot)凭借开源免费、操作简单、场景适配广的核心优势,成为新手小白解锁AI自动化的首选工具。它无需复杂编程基础,就能实现文件处理、任务提醒、信息检索等日常需求,更可无缝接入iMessage,让你通过手机短信直接发送指令,实现“随时随地调用AI”的便捷体验。
983 1
|
10月前
|
存储 运维 监控
Java云门诊管理系统源码 HIS诊所门诊信息管理系统源码 多租户SaaS模式
SaaS云门诊系统是基于云端的SaaS医疗信息化平台,覆盖挂号、诊疗、收费、药房、库存、医保等全流程管理。支持多租户、快速部署,实现数据共享与业务协同,助力基层医疗机构数字化升级,提升服务效率与患者体验。
472 5
|
人工智能 程序员 定位技术
和AI谈恋爱指南:从尬聊到心有灵犀
想让AI理解你的需求?本文用最轻松有趣的方式教你掌握提示词工程,从小白到高手,让ChatGPT成为你最得力的助手。通过生动的类比和实战案例,轻松掌握与AI对话的艺术!
680 8
|
数据可视化 数据挖掘 Linux
震撼发布!Python数据分析师必学,Matplotlib与Seaborn数据可视化实战全攻略!
在数据科学领域,数据可视化是连接数据与洞察的桥梁,能让复杂的关系变得直观。本文通过实战案例,介绍Python数据分析师必备的Matplotlib与Seaborn两大可视化工具。首先,通过Matplotlib绘制基本折线图;接着,使用Seaborn绘制统计分布图;最后,结合两者在同一图表中展示数据分布与趋势,帮助你提升数据可视化技能,更好地讲述数据故事。
541 2
|
开发框架 搜索推荐 数据可视化
Django框架适合开发哪种类型的Web应用程序?
Django 框架凭借其强大的功能、稳定性和可扩展性,几乎可以适应各种类型的 Web 应用程序开发需求。无论是简单的网站还是复杂的企业级系统,Django 都能提供可靠的支持,帮助开发者快速构建高质量的应用。同时,其活跃的社区和丰富的资源也为开发者在项目实施过程中提供了有力的保障。
1270 157
|
监控 数据挖掘 API
利用拼多多 API 接口,实现拼多多店铺物流时效优化
在电商竞争激烈的今天,物流时效直接影响拼多多店铺的客户满意度与复购率。本文介绍如何通过拼多多开放平台的 API 接口,自动化获取订单与物流数据,分析时效瓶颈并制定优化策略。内容涵盖 API 基本功能、物流数据分析、智能优化方法及 Python 实现示例,帮助商家提升配送效率,降低退货率,增强用户体验与店铺竞争力。
1538 0
|
弹性计算 安全 小程序
编程之美:Python让你领略浪漫星空下的流星雨奇观
这段代码使用 Python 的 `turtle` 库实现了一个流星雨动画。程序通过创建 `Meteor` 类来生成具有随机属性的流星,包括大小、颜色、位置和速度。在无限循环中,流星不断移动并重新绘制,营造出流星雨的效果。环境需求为 Python 3.11.4 和 PyCharm 2023.2.5。
1092 9
|
运维 监控 安全
连锁药店网络优化策略:一站式融合方案提升竞争力
在数字化浪潮下,线上药店通过技术创新和线上线下融合,正重塑购药体验,提供24小时服务和医保结算便利。面对激烈竞争,连锁药店和中小药店纷纷通过优化网络架构、提升服务质量和加强合规管理来增强竞争力,实现高效、安全的数字化转型。

热门文章

最新文章