数据结构和算法-树和二叉树的定义和基本术语和性质

文章目录

  • 树的基本概念和相关术语
    • 相关的应用
    • 节点间的关系描述
    • 节点,树的属性描述
    • 有序树vs无序树
    • 树vs森林
    • 小结
  • 树的相关性质
    • 考点1
    • 考点2
    • 考点3
    • 考点4
    • 考点5
    • 考点6
    • 小结
  • 二叉树的相关概念和基本术语
    • 重要 (五种状态)
    • 特殊二叉树
    • 小结
  • 二叉树的相关性质
    • 二叉树考点1
    • 二叉树考点2
    • 二叉树考点3
    • 完全二叉树考点1
    • 小结

树的基本概念和相关术语

在这里插入图片描述

当存在非根节点有两个前驱或者没有前驱时,都不构成树

在这里插入图片描述
任何非空树可以看作根节点和不相交的子树构成(子树可为空树)

在这里插入图片描述

相关的应用

在这里插入图片描述

节点间的关系描述

  • 祖先节点:节点以上的节点都是祖先节点
  • 子孙节点:节点一下的节点都是子孙节点
  • 双亲节点(父节点):节点的上一个节点是双亲节点
  • 兄弟节点:双亲节点相同的子孙节点
  • 堂兄弟节点:emmm有点不好说,就是同一层的节点但不包括兄弟节点,如图中的 你 G H I J

在这里插入图片描述

节点的深度(层次)可以从零开始,也可以从一开始,默认是一(高度也一样)
高度和深度相反,从字面意思应该就能理解

节点,树的属性描述

在这里插入图片描述

有序树vs无序树

有序无序看存啥吧,看你想用左右位置反映啥关系不
在这里插入图片描述

树vs森林

树的节点可以为0,即空树,森林也可以由0棵树构成,即空森林
在这里插入图片描述

小结

在这里插入图片描述

树的相关性质

树的节点数=树的所有节点的度数+1
可以这么理解
某层节点的度数和相当于下一层节点的节点数,如下图
有四层时,一二三四层的度数和相当于二三四层的节点数和(四层的度数和为零),但树的节点数还包括根节点,而一二三四层的度数和没有包括第一层的节点数,而第一层节点数为1。
所以树的节点数=树的所有节点的度数+1

考点1

在这里插入图片描述

考点2

m叉树可以为空树
在这里插入图片描述

考点3

在这里插入图片描述

考点4

在这里插入图片描述

考点5

在这里插入图片描述
这里是先设高度最小为h则可以列出此时对应的节点数应该是大于前h-1层最多的节点数的,不然不可能还会有第h层嘛,然后此时n不可能比h层最多的节点数还多嘛,不然就有h+1层了,可以列出不等式,化简。

最后的话因为h是整数,h又必须大于图中的那个log啥的,h又要求最小,所以那个log啥的得向上取整就是h的最小值

考点6

在这里插入图片描述

小结

在这里插入图片描述

二叉树的相关概念和基本术语

二叉树有序且每个节点至多两课子树(可为空子树)
在这里插入图片描述

重要 (五种状态)

在这里插入图片描述

特殊二叉树

完全二叉树:节点与对应的满二叉树节点一一对应
完全二叉树最多只有一个度为1的节点,如果有两个,则意味这两个度为1的节点的孩子之间相隔了一个节点,那么将不满足节点与对应的满二叉树节点一一对应的条件
在这里插入图片描述

如果完全二叉树某节点只有一个孩子,那么一定是左孩子

二叉排序树即左孩子上存储的值小于父节点上存储的值小于右孩子上存储的值
在这里插入图片描述
当二叉排序树是平衡二叉树时,那么搜索的深度更小,效率更高。因为比较次数少了

在这里插入图片描述

小结

在这里插入图片描述

二叉树的相关性质

总度数=度为1的结点数1+度为2的结点数2

二叉树考点1

在这里插入图片描述

二叉树考点2

在这里插入图片描述

二叉树考点3

在这里插入图片描述

完全二叉树考点1

在这里插入图片描述
在这里插入图片描述

小结

在这里插入图片描述

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

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

相关文章

SpringCloudAlibaba之Nacos的持久化和高可用——详细讲解

目录 一、Nacos持久化 1.持久化说明 2.安装mysql数据库5.6.5以上版本(略) 3.修改配置文件 二、nacos高可用 1.集群说明 2.nacos集群架构图 2.集群搭建注意事项 3.集群规划 4.搭建nacos集群 5.安装Nginx 6.配置nginx conf配置文件 7.启动nginx进行测试即可 一、Nacos持久…

【算法】NOIP2003神经网络

题目描述 人工神经网络(Artificial Neural Network)是一种新兴的具有自我学习能力的计算系统,在模式识别、函数逼近及贷款风险评估等诸多领域有广泛的应用。对神经网络的研究一直是当今的热门方向,兰兰同学在自学了一本神经网络的…

经验分享:JMeter控制RPS

一、前言 ​ RPS (Request Per Second)一般用来衡量服务端的吞吐量,相比于并发模式,更适合用来摸底服务端的性能。我们可以通过使用 JMeter 的常数吞吐量定时器来限制每个线程的RPS。对于RPS,我们可以把他理解为我们的TPS,我们就…

19.Oracle11g中的游标

oracle11g中的游标 一、案例引入二、什么是游标三、隐式游标1、隐式游标的属性2、创建语法3、示例 四、显示游标1、显示游标的属性2、创建语法3、示例 五、REF游标1、REF游标的属性2、创建语法3、示例 六、循环游标1、 循环游标的作用2、用for 与 loop 创建3、示例 一、案例引入…

基于可微分渲染器的相机位置优化【PyTorch3D】

在这个教程中,我们将使用可微渲染学习给定参考图像的相机的 [x, y, z] 位置。 我们将首先使用相机的起始位置初始化渲染器。 然后,我们将使用它来生成图像,使用参考图像计算损失,最后通过整个管道进行反向传播以更新相机的位置。…

【开源】基于Vue+SpringBoot的企业项目合同信息系统

项目编号: S 046 ,文末获取源码。 \color{red}{项目编号:S046,文末获取源码。} 项目编号:S046,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 合同审批模块2.3 合…

Flask Echarts 实现历史图形查询

Flask前后端数据动态交互涉及用户界面与服务器之间的灵活数据传递。用户界面使用ECharts图形库实时渲染数据。它提供了丰富多彩、交互性强的图表和地图,能够在网页上直观、生动地展示数据。ECharts支持各种常见的图表类型,包括折线图、柱状图、饼图、散点…

FFmepg 核心开发库及重要数据结构与API

文章目录 前言一、FFmpeg 核心开发库二、FFmpeg 重要数据结构与 API1、简介2、FFmpeg 解码流程①、FFmpeg2.x 解码流程②、FFmpeg4.x 解码流程 3、FFMpeg 中比较重要的函数以及数据结构①、数据结构②、初始化函数③、音视频解码函数④、文件操作⑤、其他函数 三、FFmpeg 流程1…

【活动回顾】sCrypt在柏林B2029开发者周

B2029 是柏林的一个区块链爱好者、艺术家和建设者聚会,学习、讨论和共同构建比特币区块链地方。 在2023年6月9日至11日,举行了第7次Hello Metanet研讨会。本次研讨会旨在为参与者提供一个学习、讨论和共同构建比特币区块链的平台。 在这个充满激情和创意…

C语言:输出所有“水仙花数”。“水仙花数”是指一个3位数,其各位数字的立方和等于该数本身,如153=1^3 +5^3+3^3

分析: 在主函数 main 中,程序首先定义四个整型变量 m、a、b 和 c,并用于计算和判断水仙花数。然后使用 printf 函数输出提示信息。 接下来,程序使用 for 循环结构,从 100 到 999 遍历所有三位数。对于每个遍历到的数 m…

Vue简易的车牌输入键盘,可以根据需要修改

效果图如下&#xff1a; 代码如下&#xff1a; <template><div><div class"carNoBoxInput"><div style"padding: 6px;border: 2px solid #fff;border-radius: 6px;margin: 6px 3px 6px 6px;"><input class"inputBox"…

Make sure bypassing Vue built-in sanitization is safe here.

一、问题描述 二、问题分析 XSS(跨站脚本攻击) XSS攻击通常指的是通过利用网页开发时留下的漏洞&#xff0c;通过巧妙的方法注入恶意指令代码到网页&#xff0c;使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript&#xff0c;但实际上也可以包括J…

https到底把什么加密了?

首先直接说结论&#xff0c; https安全通信模式&#xff0c;是使用TLS加密传输所有的http协议。再重复一遍&#xff0c;是所有&#xff01; 通常将TLS加密传输http这个通信过程称为https&#xff0c;如果使用协议封装的逻辑结构来表达就是&#xff1a; IP TCP TLS 【 HTTP 】…

大连大学2023年11月程序设计竞赛(同步赛)

B、爆wa种子!&#xff08;数学&#xff09; 一、题目要求 链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 来源&#xff1a;牛客网 爆wa种子发现了上次玩游戏时你和妙wa种子的py交易&#xff0c;所以他要求这次玩游戏你来当爆wa种子的枪手&#xff0c;为他写个程序…

前端 --- HTML

目录 一、网络的三大基石 ​二、什么是HTML 一、HTML 指的是超文本标记语言 二、HTML的作用 三、HTML的标准结构 四、IDE_HBuilder的使用 一、编码工具&#xff1a; 二、集成开发环境 三、HBuilder使用步骤&#xff1a; 五、HTML的标签的使用 一、html_head_body 二、head…

CSS新手入门笔记整理:CSS字体样式

字体类型&#xff1a;font-family 语法 font-family&#xff1a;字体1,字体2,...,字体n; font-family可以指定多种字体。使用多个字体时&#xff0c;将按从左到右的顺序排列&#xff0c;并且以英文逗号&#xff08;,&#xff09;隔开。如果我们不定义font-family&#xff0c…

viple模拟器使用(三):unity模拟器中实现沿右墙迷宫算法

沿右墙迷宫算法 引导 线控模拟可以使得通过用户手动操作&#xff0c;实现机器人在模拟环境下在迷宫中行走&#xff08;即&#xff1a;运动&#xff09;&#xff0c;算法可以使得机器人按照一定的策略自动行走&#xff0c;沿右墙迷宫算法就是其中的一种策略。 目的 运行程序后&…

Scrapy框架内置管道之图片视频和文件(一篇文章齐全)

1、Scrapy框架初识&#xff08;点击前往查阅&#xff09; 2、Scrapy框架持久化存储&#xff08;点击前往查阅&#xff09; 3、Scrapy框架内置管道 4、Scrapy框架中间件&#xff08;点击前往查阅&#xff09; Scrapy 是一个开源的、基于Python的爬虫框架&#xff0c;它提供了…

3D模型纹理集合并【Python|C#】

使用 Substance Painter 时&#xff0c;将模型的各个部分分成不同的纹理集非常有用。 这可以帮助遮罩&#xff0c;或者只是保持层栈干净。 不幸的是&#xff0c;Painter 无法将多个纹理集中的所有贴图导出为单个图集&#xff0c;即使在创建单独对象的 UV 时考虑到了这一点。 显…

Django创建基本的app应用并配置URL路径-成功运行服务

开发环境&#xff1a;Pycharm2021 Win11 首先创建虚拟环境: 可参考&#xff1a; Pycharm开发环境下创建python运行的虚拟环境&#xff08;自动执行安装依赖包&#xff09;_pycharm自动下载依赖包_heda3的博客-CSDN博客 1、安装 Django 在虚拟环境下安装pip install django …