了解树和学习二叉树

 

1.树

1.1 概念

     树是一种 非线性 的数据结构,它是由 n n>=0 )个有限结点组成一个具有层次关系的集合。 把它叫做树是因为它看 起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的 。 

注意:树形结构中,子树之间不能有交集,否则就不是树形结构  !!!

一颗N结点的树有N-1条边

 

结点的度 :一个结点含有子树的个数称为该结点的度; 如上图: A 的度为 6
树的度 :一棵树中,所有结点度的最大值称为树的度; 如上图:树的度为 6
叶子结点或终端结点 :度为 0 的结点称为叶结点; 如上图: B C H I... 等节点为叶结点
双亲结点或父结点 :若一个结点含有子结点,则这个结点称为其子结点的父结点;如上图: A B 的父结点
孩子结点或子结点 :一个结点含有的子树的根结点称为该结点的子结点;如上图: B A 的孩子结点
根结点 :一棵树中,没有双亲结点的结点;如上图: A
结点的层次 :从根开始定义起,根为第 1 层,根的子结点为第 2 层,以此类推

 2. 二叉树(重点)

2.1 概念

     一棵二叉树是结点的一个有限集合,该集合:
        1. 或者为空
        2. 或者是由 一个根节 点加上两棵别称为 左子树 右子树 的二叉树组成

 

 二叉树的每个节点的度 <= 2

2.2  两种特殊的二叉树  

满二叉树:每层的结点数都达到最大值,就是满二叉树。(每个节点的度=2

完全二叉树:有n 个结点的二叉树,从上到下,从左到右,编号从0n-1的结点一 一对应时称之为完 全二叉树。

      满二叉树是一种特殊的完全二叉树。

2.3 二叉树的性质 

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

2.4 二叉树的遍历 

前序遍历和后序遍历是无法构成一棵树的!

无法确定左、右子树

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

什么是数据资产化?数据怎样成为资产?怎样进入资产负债表?

财政部发布的《企业数据资源相关会计处理暂行规定》将从2024年1月1日起开始实施&#xff0c;为企业数据资源入表提供了基本指引&#xff0c;数据资产化有望迎来爆发期。什么是数据资产化&#xff0c;怎样让数据成为资产&#xff0c;成为了众多国有企业、上市公司关心的问题。 —…

「Vue3面试系列」Vue3.0性能提升主要是通过哪几方面体现的?

文章目录 一、编译阶段diff算法优化静态提升事件监听缓存SSR优化 二、源码体积三、响应式系统参考文献 一、编译阶段 回顾Vue2&#xff0c;我们知道每个组件实例都对应一个 watcher 实例&#xff0c;它会在组件渲染的过程中把用到的数据property记录为依赖&#xff0c;当依赖发…

C语言学习NO.10-指针(二)数组名的理解,使用指针访问数组,一维数组传参的本质,冒泡排序,二级指针,指针数组,指针数组模拟二维数组

一、数组名的理解 //使用指针访问数组的内容 int arr[10] {1,2,3,4,5,6,7,8,9,10}; int* p &arr[0]; 这里我们使用&arr[0]的方式拿到了数组第一个元素的地址&#xff0c;但是其实数组名本来就是地址&#xff0c;而且是数组首元素的地址。 #include <stdio.h>…

全国“兽医”专业大学生知识竞赛策划方案

一、初赛&#xff1a;参赛者通过网络平台进行答题。 各校大学生均可在“大赛官网”登录&#xff0c;填写真实姓名、学校、联系方式、身份证号、学号等信息&#xff0c;即可答题参赛。 系统将随机从题库中抽取50道题&#xff0c;满分100分&#xff0c;其中&#xff0c;单选题20…

Prometheus API 使用介绍|收藏

​ &#x1f4e2;专注于分享软件测试干货内容&#xff0c;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;交流讨论&#xff1a;欢迎加入我们一起学习&#xff01;&#x1f4e2;资源分享&#xff1a;耗时200小时精选的「软件测试…

通过windows cng api 实现rsa非对称加密

参考&#xff1a; 1,使用 CNG 加密数据 - Win32 apps | Microsoft Learn 2,不记得了 &#xff08;下文通过cng api演示rsa加密&#xff0c;不做原理性介绍&#xff09; 相对于aes等对称加密算法&#xff0c;rsa加密算法不可逆性更强。非对称加密在通常情况下&#xff0c;使…

STM32烧录口锁死问题解决

前言 我在给STM32单片机下载程序时&#xff0c;出现下载成功一次后&#xff0c;后面就下载不了了&#xff0c;识别不到下载器设备&#xff0c;经过排查&#xff0c;最终确认是代码配置有误&#xff0c;导致板子烧录口锁死&#xff0c;下面我将把问题的出现到问题的解决进行复现…

LZ码基本概念

LZ码是一种无损压缩算法&#xff0c;由Lempel和Ziv两位计算机科学家提出并命名。它是一种基于字典的压缩方法&#xff0c;可以将数据有效地压缩存储&#xff0c;同时实现高效的解压缩。 LZ码的基本概念是利用字典来存储先前遇到的字符串&#xff0c;然后用较短的代表符号来表示…

R软件包ConsensusCluster进行共识聚类(Consensus Clustering)

从下面论文看到这个方法&#xff1a; Wang, Xin, et al. "Deep learning using bulk RNA-seq data expands cell landscape identification in tumor microenvironment." Oncoimmunology 11.1 (2022): 2043662. 这篇论文基于 AI 方法对 bulk RNA-seq 数据识别肿瘤微环…

2023年12月GESP Python五级编程题真题解析

【五级编程题1】 【试题名称】&#xff1a;小杨的幸运数 【问题描述】 小杨认为&#xff0c;所有大于等于a的完全平方数都是他的超级幸运数。 小杨还认为&#xff0c;所有超级幸运数的倍数都是他的幸运数。自然地&#xff0c;小杨的所有超级幸运数也都是幸运数。 对于一个…

AI 视频 | 又一款 AI 视频工具火爆全网!DomoAI 实测体验如何?

一、引言 前几期介绍了几款常用的 AI 视频工具&#xff1a;Moonvalley、Runway Gen-2、Stable Video Diffusion&#xff0c;NeverEnds&#xff0c;对 AI 视频工具感兴趣的小伙伴可以移步之前的几篇文章。 程序员X小鹿&#xff1a;【AI视频】免费的 AI 视频生成工具 Moonvalley…

纯搬运 solidworks 2021卸载方法,怎么完全彻底卸载删除清理干净solidworks 2021各种残留注册表和文件?

纯搬运 solidworks 2021卸载方法&#xff0c;怎么完全彻底卸载删除清理干净solidworks 2021各种残留注册表和文件&#xff1f; 网址&#xff1a; solidworks 2021卸载方法&#xff0c;怎么完全彻底卸载删除清理干净solidworks 2021各种残留注册表和文件&#xff1f; solidworks…

js显示实时时间

文章目录 一、效果二、思路三、最后 一、效果 用JS实现XXXX年XX月XX日 星期X XX时XX分XX秒 效果 效果 &#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>time</title><script t…

基于Java SSM框架实现在线课程教育资源考试管理系统项目【项目源码+论文说明】

基于java的SSM框架实现在线课程教育资源考试管理系统演示 摘要 随着社会的发展&#xff0c;社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线教育资源管理系统&#xff0c;主要的模块包括管理员&#xff1b;个人中心、学生…

Android wifi基础知识点

1、什么是 CSMA/CA &#xff1f; 以太网用 CSMA/CD 进行传输控制&#xff0c;而 IEEE 802.11 的 WLAN 采用的是 CSMA/CA 。 CSMA/CD &#xff0c;全称 Carrier Sense Multiple Access with Collision Detection &#xff0c;即 载波侦听多路访问/冲突检测协议。 载波侦听(Ca…

Python课程设计-图书管理系统

Python课程设计-图书管理系统 摘要第一章 绪论1.1 开发环境及技术1.2 系统实现功能描述 第二章 功能详细设计与实现2.1 系统框架各层次实现2.1.1 可视页面设计2 数据库设计3 逻辑流程设计 2.2 主要功能的设计与实现1 功能 1用户登录2 功能 2展示图书3 功能 3添加图书4 功能 4删…

个性化邮件营销策略:提升销售额的有效方法

事实上&#xff0c;电子邮件营销人员一直将个性化视为让受众产生强烈参与感的最佳方式之一。对于很多营销人员来说&#xff0c;实施个性化甚至不再是一种选择&#xff0c;而是培养和吸引潜在客户和联系人的必要条件。因此&#xff0c;今天我们将一起来讨论一些成功电子邮件营销…

YZ系列工具之YZ03:高版本Excel的自定义菜单

我给VBA下的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的工作效率&#xff0c;而且可以提高数据的准确度。我的教程一共九套一部VBA手册&#xff0c;教程分为初级、中级、高级三大部分。是对VBA的系统讲解&#xff0c;从简单的…

整数规划-分支定界法

分支定界法 分支定界法由来分支定界法原理分支定界法思想疑惑or改进&#xff1f; 分支定界法由来 谨以此博客作为学习期间的记录 在生活中&#xff0c;整数规划(IP)或者混合整数规划(MIP)往往要比单纯的线性规划(LP)应用更为广泛。生产计划、库存规划等&#xff0c;都有着变量…

STL中优先队列的模拟实现与仿函数的介绍

文章目录 仿函数优先队列的模拟实现 仿函数 上回我们说到&#xff0c;优先队列的实现需要用到仿函数的特性 让我们再回到这里 这里我们发现他传入的用于比较的东西竟然是一个类模板&#xff0c;而不是我们所见到的函数 我们可以先创建一个类&#xff0c;用于比较大小 struc…