【数据结构趣味多】二叉树概念及性质

news2024/12/27 12:30:07

1.树的定义

 定义:树(Tree)是n(n>=0)个结点的有限集。n=0时称为空树。在任意一棵非空树种;

  1. 有且仅有一个根结点(root)。
  2. 当n>1时,其余结点可分为m(m>0)个互不相交的有限集,其中每一个几个本身又是一刻棵树,称为根的子树(SubTree)。

如图所示:

下图中子数T1和子树T2就是根结点root的子树。而D、G、H、I又是以B为根结点的子树;

D、F、G是以C为根结点的子树。

 对于数的定义需要注意:

  1. n>0时根结点是唯一的,不可能存在多个根结点,树只有一个根结点;每个结点只有一个父结点。
  2. m>0时,子树的个数没有限制,但是它们一定不会相交

2.树的概念 

  • 结点的度:一个结点含有子树的个数称为该结点的度; 如上图:A的度为6
  • 树的度:一棵树中,所有结点度的最大值称为树的度; 如上图:树的度为6
  • 叶子结点或终端结点:度为0的结点称为叶结点; 如上图:B、C、H、I...等节点为叶结点
  • 双亲结点或父结点:若一个结点含有子结点,则这个结点称为其子结点的父结点; 如上图:A是B的父结点
  • 孩子结点或子结点:一个结点含有的子树的根结点称为该结点的子结点; 如上图:B是A的孩子结点
  • 根结点:一棵树中,没有双亲结点的结点;如上图:A
  • 结点的层次:从根开始定义起,根为第1层,根的子结点为第2层,以此类推
  • 树的高度或深度:树中结点的最大层次; 如上图:树的高度为4
  • 非终端结点或分支结点:度不为0的结点; 如上图:D、E、F、G...等节点为分支结点
  • 兄弟结点:具有相同父结点的结点互称为兄弟结点; 如上图:B、C是兄弟结点
  • 堂兄弟结点:双亲在同一层的结点互为堂兄弟;如上图:H、I互为兄弟结点
  • 结点的祖先:从根到该结点所经分支上的所有结点;如上图:A是所有结点的祖先
  • 子孙:以某结点为根的子树中任一结点都称为该结点的子孙。如上图:所有结点都是A的子孙
  • 森林:由m(m>=0)棵互不相交的树组成的集合称为森林

 

3.两种特殊的二叉树 

1. 满二叉树:一棵二叉树,如果每层的结点数都达到最大值,则这棵二叉树就是满二叉树。也就是说,如果一棵二叉树的层数为K,且结点总数是2^k-1 ,则它就是满二叉树。
2. 完全二叉树: 完全二叉树是效率很高的数据结构,完全二叉树是由满二叉树而引出来的。对于深度为K的,有n个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从0至n-1的结点一一对应时称之为完全二叉树。 要注意的是满二叉树是一种特殊的完全二叉树。

 4.二叉树的性质

1. 若规定根结点的层数为1,则一棵非空二叉树的第i层上最多有2^i-1  (i>0)个结点
2. 若规定只有根结点的二叉树的深度为1,则深度为K的二叉树的最大结点数是2^k-1  (k>=0)
3. 对任何一棵二叉树, 如果其叶结点个数为 n0, 度为2的非叶结点个数为 n2,则有n0=n2+1
4. 具有n个结点的完全二叉树的深度k为log2(n+1)上取整
5. 对于具有n个结点的完全二叉树,如果按照从上至下从左至右的顺序对所有节点从0开始编号,则对于序号为i的结点有:
        若i>0,双亲序号:(i-1)/2;i=0,i为根结点编号,无双亲结点
        若2i+1<n,左孩子序号:2i+1,否则无左孩子
        若2i+2<n,右孩子序号:2i+2,否则无右孩子
 

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

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

相关文章

H13-531云计算HCIE V2.0——400~600常错题和知识点总结

400~600 422、在 FusionCloud 6.x 中&#xff0c;以下关于备份的说法哪项是错误的&#xff1f; A&#xff0e;备份协议支持本地&#xff0c;通过 FTP/SFTP 到第三方服务器及 OBS B. 为了保证系统稳定运行&#xff0c;对管理数据进行备份恢复可以确保在异常时对业务的影响降到…

没有完美的项目,也轮不到你,找到适合自己的,先干起来再说

首先明确一点&#xff0c;没有百分百完美的项目&#xff0c;即使有&#xff0c;也轮不到你。不要认为你必须先找到一个完美的项目&#xff0c;然后再去工作。这个想法最后的结局就是项目一直在找&#xff0c;观望&#xff0c;迟迟不行动&#xff0c;不赚钱。如果你真的想找个项…

C++ 语法基础课 习题7 —— 类、结构体、指针、引用

文章目录例题1. 21.斐波那契数列2. 16.替换空格3. 84.123...n4. 28.O(1)时间删除链表结点5. 36.合并两个排序的链表例题 1. 21.斐波那契数列 Acwing 21.斐波那契数列 class Solution { public:int Fibonacci(int n) {if(n < 1) return n;return Fibonacci(n - 1) Fibon…

并发编程 - ThreadLocal

前言 ThreadLocal 用于解决多线程对于共享变量的访问带来的安全性问题。ThreadLocal 存储线程局部变量。每个线程内置 ThreadLocalMap&#xff0c;ThreadLocalMap 的 key 存储 ThreadLocal 实例&#xff0c;value 存储自定义的值。与同步机制相比&#xff0c;它是一种“空间换…

vue性能优化之预渲染prerender-spa-plugin+vue-meta-info解决seo问题

单页面应用中&#xff0c;web项目只有一个页面&#xff0c;前端根据路由不同进行组件之间的对应切换&#xff0c;动态的渲染页面内容。这就是客户端渲染&#xff0c;具有减少服务器端压力、响应速度快等优点。但是单页应用在优化用户体验的同时&#xff0c;也给我们带来了一些对…

阅读 | 001《人工智能导论》(三)知识应用篇1

文章目录知识应用第9章、专家系统9.1 专家系统概述9.2 推理方法9.3 一个简单的专家系统9.4 非确定性推理9.5 专家系统工具9.6 专家系统的应用9.7 专家系统的局限性9.8 本章小结第10章、计算机视觉10.1 计算机视觉概述10.2 数字图像的类型及机内表示10.3 常用计算机视觉模型和关…

计算机重装系统方法教程

​计算机在使用的过程中出现各种问题也是在所难免的&#xff0c;当计算机出现了一些系统故障问题没有办法解决时&#xff0c;或是计算机使用长了以后运行就会变得越来越慢时&#xff0c;这时大家可以考虑通过电脑重装系统来解决&#xff0c;那么&#xff0c;计算机如何重装系统…

ArcGIS基础实验操作100例--实验71多图层叠加查询

本实验专栏参考自汤国安教授《地理信息系统基础实验操作100例》一书 实验平台&#xff1a;ArcGIS 10.6 实验数据&#xff1a;请访问实验1&#xff08;传送门&#xff09; 高级编辑篇--实验71 多图层叠加查询 目录 一、实验背景 二、实验数据 三、实验步骤 &#xff08;1&am…

MATLAB——PCM编译码实验

目录MATLAB——PCM编译码一、实验原理1.掌握PCM编码原理和译码原理2. 练习使用Matlab编程实现PCM编码和译码3. 了解失真度的概念&#xff0c;能对译码结果进行失真度分析二、实验原理三、实验要求1、用Matlab产生一模拟信号&#xff0c;如&#xff1a; 或者自己编写一信号&…

“微综艺+虚拟场景”,蓝海创意云利用元宇宙技术撬动流量杠杆

1月1日&#xff0c;抖音微综艺节目“友问必答”2023新年直播盛大开幕&#xff0c;蓝海创意云利用vLive虚拟直播系统为此档节目搭建了专属的“元宇宙问答直播间”&#xff0c;整场直播观看人次突破 30W 人次&#xff0c;最高同时在线人数达 3W 人次&#xff0c;独特的直播形式和…

基于Spring+Mybatis框架的人事管理系统源码+数据库,含视频部署教程

人事管理系统 下载地址&#xff1a;基于SpringMybatis框架的人事管理系统源码数据库 部署说明&#xff1a; 项目启动后&#xff0c;在浏览器中访问地址&#xff1a;http://127.0.0.1:8080/personnel/ 由于很多同学反映部署有问题&#xff0c;所以我录了一个视频来演示一下&…

【Python爬虫项目实战】Python爬虫采集某外包平台数据保存本地

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录前言一、开发工具二、环境搭建三、数据来源查询分析四、代码实现1. 发送请求2.数据获取3.解析数据4. 保存数据总结前言 今天给大家介绍的是Python爬虫某外包平台数据…

架构设计---搜索引擎的原理

前言&#xff1a; 搜索引擎的倒排索引&#xff0c;数据的搜索与查找技术是计算机软件的核心算法&#xff0c;这方面已有非常多的技术和实践经验。而对于搜索引擎来说&#xff0c;要面对海量的文档进行快速的内容检索、查询的话&#xff0c;最主要的技术是倒排索引技术。 像百…

从0.5到4.0,OceanBase单机分布式一体化的技术演进|DTCC 2022

2022 年 12 月 14 日~16 日&#xff0c;由 IT168 联合旗下 ITPUB、ChinaUnix 两大技术社区主办的第 13 届中国数据库技术大会&#xff08;DTCC 2022&#xff09;在线上隆重召开。大会以“数据智能 价值创新”为主题&#xff0c;上百位技术领袖齐聚云端&#xff0c;进行多维度、…

信道模型:卫星→地面

这里写目录标题比较C. Loo模型&#xff1a;直射阴影&#xff0c;多径不阴影Corazza模型&#xff1a;直射和多径都阴影Lutz模型&#xff1a;好坏2个状态Rayleigh and Rician 信道生成Shadowed-Rician 直射径 散射径[Secure Transmission in Cognitive Satellite Terrestrial Net…

异常流量发现与分析案例

异常现象 NetInside流量分析系统在某教育平台监测过程中&#xff0c;5月14日发现明显的4次流量高峰&#xff08;其中第1-2次产生时间距离较近&#xff09;&#xff0c;详细出现时间如下图。 由上图分析看到&#xff0c;引起流量高峰的IP地址是58.129.247.149&#xff0c;下图…

数字孪生关键技术及其在电力行业应用场景

近年来&#xff0c;我国高度重视数字经济的发展&#xff0c;产业数字化升级战略正在推进中&#xff0c;引导数字经济与实体经济深度融合&#xff0c;促进经济高质量发展。数字孪生作为一项关键技术和提高效能的重要工具&#xff0c;可以有效发挥其在建模、数据采集、分析预测、…

前端组件库自定义主题切换探索-01-方案借鉴与思路参考

探索原因背景 首先自然是项目有需求&#xff0c;这是必须去做的原因 其次&#xff0c;是我们项目没有直接使用市面上现成的基于element-ui或者ant-design的第三方UI框架&#xff0c;比如avue&#xff0c;而是有着自己的UI组件库 第三&#xff0c;我们的组件库基于ant-design-v…

C++ stack和queque

Stack 一.有关stack介绍 stack是一种容器适配器&#xff0c;专门用在具有后进先出操作的上下文环境中&#xff0c;其只能从容器的一端进行元素的插入、提取或者删除操作。stack是作为容器适配器被实现的&#xff0c;容器适配器即是对特定类封装作为其底层的容器&#xff0c;并…

u盘格式化后数据能恢复吗?当然可以,5步恢复U盘数据

很多人都知道格式化U盘会清空里面的数据&#xff0c;虽然可以进行备份&#xff0c;但是一般我们都不会轻易格式化自己的U盘。但是遇到一些特殊情况&#xff0c;我们必须格式化U盘。u盘格式化后数据能恢复吗&#xff1f;当然可以。 只要你的原始数据没有被覆盖&#xff0c;没有…