数据结构(c++语言版) 邓俊辉 第五章:二叉树学习笔记

5.1二叉树及其表示

        树是由节点和边组成的。

1.有根树

        树是由顶点(vertex)和边(edge)组成。树的每个顶点也叫节点(node)。

2.深度与层次

        由树的连通性,每一节点与根都有一条路径相连:根据树的无环性,由根通往每个节点的路径必然唯一。

        节点v的深度:每个节点到root的唯一通路所经过的边的数目,称作v的数目,记作depth(v)。

        约定 depth(r) = 0,其中r表示根节点。

祖先:任一节点通往树根所经过的每个节点都叫做v的祖先(ancestor),v是他们的后代(descendant)。特别地,v的祖先和后代包括v本身。v本身以外的祖先/后代称为v的真祖先(proper ancestor)/真后代(proper descendant)。

        父亲/孩子:u如果是v的祖先,且u比v高出一层。就称u是v的父亲。v是u的孩子。

        度:v的孩子的总数,称作v的度数或者度(degree),记作deg(v)。

        叶节点:无孩子的节点称为叶节点。(leaf node)。其余节点(包括根节点,叫做内部节点)。

        子树:v的所有后代及其连边所组成树称作子树(subtree),记作subtree(v)。

3.高度

        树T中所有节点深度最大值称作树的高度(height),记作height(H)。

        不难理解,树的高度(height),是由其中某个叶节点的深度决定的,特别地,本书约定,仅含单个节点的树的高度为0,空树的高度为-1。

        推而广之,任一节点v所对应子树subtree(v)的高度,亦称做该节点的高度,记作height(v)。特别地,全树的高度称作根节点的高度。即height(T) = height(r)。

5.1.2 二叉树

        

 如图,二叉树的每个节点的度都不超过2。因此在二叉树中,每个节点的左右孩子都可以以左右区分——此时,亦称作有序二叉树(ordered binary tree)。特别地,不含一度节点的树,称做真二叉树(proper binary tree)。

5.1.3多叉树

        一般地,树中各节点孩子数目不确定,每个节点孩子均不超过k个的有根树,称做k叉树。

(1)父节点表示法

                  

 (2)孩子节点表示法

(3)父节点+孩子节点表示法

        

        

        

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

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

相关文章

数据结构——双向链表

双向链表实质上是在单向链表的基础上加上了一个指针指向后面地址 单向链表请参考http://t.csdn.cn/3Gxk9 物理结构 首先我们看一下两种链表的物理结构 我们可以看到:双向在单向基础上加入了一个指向上一个地址的指针,如此操作我们便可以向数组一样操作…

STM32 4G学习

硬件连接 ATK-IDM750C模块可直接与正点原子 MiniSTM32F103开发板板载的ATK模块接口(ATK-MODULE)进行连接。 功能说明 ATK-IDM750C是正点原子(ALIENTEK)团队开发的一款高性能4G Cat1 DTU产品,支持移动4G、联通4G和…

健启星|医学营养的市场先行者

随着《“健康中国2030”规划纲要》、《国民营养计划(2017-2030年)》等政策的陆续发布,标志着以传统药物治疗为中心的医疗模式时代正式转型到以预防和康复为中心的新的医学营养时代。在此背景下,符合时代需求的特医食品成为“医学营…

vxe table: 实现tree表格,并且自定义展示指定行

要求,数据中必须有唯一的id字段,并且row-config.KeyField 要指定这个id字段。否则在自定义展开行时展开不生效。并不影响tree的渲染 数据有两种形式 普通数据结构tree 状结构, 以树状结构为例: 首先我们要将普通结构的数据,按…

JMeter 的并发设置教程

JMeter 是一个功能强大的性能测试工具,可以模拟许多用户同时访问应用程序的情况。在使用 JMeter 进行性能测试时,设置并发是非常重要的。本文将介绍如何在 JMeter 中设置并发和查看报告。 设置并发 并发是在线程组下的线程属性中设置的。 线程数&#…

CentOS 7 构建 LVS-DR 群集 nginx负载均衡

1、基于 CentOS 7 构建 LVS-DR 群集。 DS(Director Server):DIP 192.168.231.132 & VIP 192.168.231.200 [root132 ~]# nmcli c show NAME UUID TYPE DEVICE ens33 c89f4a1a-d61b-4f24-a260…

实现Jenkins自动发包配置

参考抖音:Java不良人 其中的视频演示代码 不推荐把jenkins端口一直开放,推荐使用时候放开(版本不太新,避免漏洞攻击) [rootVM-4-12-centos soft]# docker-compose -v Docker Compose version v2.19.1docker-compose.…

零基础看懂免费开源的Stable Diffusion

文章目录 前言Diffusion模型推理过程训练过程 Stable Diffusion模型参考 前言 前面一篇文章主要讲了扩散模型的理论基础,还没看过上篇的小伙伴可以点击查看:DDPM理论基础。这篇我们主要讲一下一经推出,就火爆全网的Stable Diffusion模型。St…

策略模式(C++)

定义 定义一系列算法,把它们一个个封装起来,并且使它们可互相替换((变化)。该模式使得算法可独立手使用它的客户程序稳定)而变化(扩展,子类化)。 ——《设计模式》GoF 使用场景 在软件构建过程中,某些对象使用的算法可能多种多…

神码ai伪原创【php源码】

大家好,小编为大家解答python必备常用英语词汇笔记的问题。很多人还不知道python中常用的英语单词,现在让我们一起来看看吧! 火车头采集ai伪原创插件截图: 一.什么是注释 注释是对一段代码的解释,不参与程序运行&…

dubbo之整合SpringBoot

目录 zookeeper安装 1.拉取ZooKeeper镜像 2.新建文件夹 3.挂载本地文件夹并启动服务 4.查看容器 5.进入容器(zookeeper) Dubbo Admin安装 1.下载dubbo-admin 2.zip包解压 3.修改配置文件 4.打包项目 5.启动jar 6.访问 构建项目 api模块 1.创建…

无涯教程-Perl - getservbyport函数

描述 此功能转换协议PROTO的服务编号PORT,在标量context中返回服务名称,并在列表context中返回名称和相关信息- ($name,$aliases,$port_number,$protocol_name) 该调用基于/etc/services文件返回这些值。 语法 以下是此函数的简单语法- getservbyport PORT, PROTO返回值 …

将vsCode 打开的多个文件分行(栏)排列,实现全部显示,便于切换文件

目录 1. 前言 2. 设置VsCode 多文件分行(栏)排列显示 1. 前言 主流编程IDE几乎都有排列切换选择所要查看的文件功能,如下为Visual Studio 2022的该功能界面: 图 1 图 2 当在Visual Studio 2022打开很多文件时,可以按照图1、图2所示找到自…

伺服系统::编码器

一、主要分类 二、组成与原理 光电编码器 磁编码器:N-->磁感元件(0);S-->磁感元件(1)》脉冲 增量编码器的分辨率、倍频与细分技术 (99 封私信 / 81 条消息) 编码器有什么分类? - 知乎 (z…

安卓:UDP通信

目录 一、介绍 网络通信的三要素: (1)、IP地址: IPv4: IPv6: IP地址形式: IP常用命令: IP地址操作类: (2)、端口: (3)、协议: UDP协…

搭建Docker环境

目录 一、docker环境搭建 1、卸载旧版本docker 2、安装依赖和设置仓库 3、安装docker 4、启动并加入开机启动 5、验证是否安装成功 二、利用docker搭建nginx 1、拉取镜像 2、启动容器,部署nginx 一、docker环境搭建 1、卸载旧版本docker yum remove docke…

SD NAND FLASH : 什么是pSLC?

一、什么是pSLC pSLC(Pseudo-Single Level Cell)即伪SLC,是一种将MLC/TLC改为SLC的一种技术,现Nand Flash基本支持此功能,可以通过指令控制MLC进入pSCL模式,存储时在MLC的每个单元中仅存储1bit数据&#x…

基于k8s job设计与实现CI/CD系统

方案一:Jenkinsk8sCICD 方案二:kanikok8s jobCICD CICD 基于K8s Job设计流水线 CI方案 工具镜像 云原生镜像打包工具 kaniko的使用 与Jenkins对比 可用性与易用性

IntelliJ IDEA 2021/2022关闭双击shift全局搜索

我这里演示的是修改,删除是右键的时候选择Remove就好了 IDEA左上角 File-->Settings 找到Navigate -->Search Everywhere ,右键添加快捷键。 OK --> Apply应用

高端百度地图开发1:自定义水滴头像(自定义标注覆盖物、Overlay覆盖类)

自定义水滴头像&自定义标注覆盖物 一、引入百度地图JSAPI库二、构建map容器1. CSS样式表2.HTML容器 三、核心代码1.百度地图API功能2.定义构造函数并继承Overlay3.初始化自定义覆盖物4.绘制覆盖物5.添加覆盖物 自定义标注覆盖物(Custom Overlay)是百…