树的预备知识

【0】README

0.1) 本文总结于 数据结构与算法分析,旨在整理出 树的相关术语和概念(哥子始终记不住树的高度和深度,记着记着就混淆了,哎,所以分享出来);


【1】树相关

1.1)定义树的一种自然方式是递归的方法;
1.2)树定义:一棵树是一些节点的集合, 这个集合可以是空集;若非空, 则一棵树由称作 根(root)的节点r 以及0个或多个非空的子树组成;(树中还有树, 这本就是一个递归的定义)
1.3)儿子+父亲:一个子树的根 叫做 根r 的 儿子, 而r 是每一颗子树的根的 父亲;
1.4)树的性质:

  • 1.4.1)树的根结点没有前驱结点,除根结点之外的所有结点有且只有一个前驱结点;
  • 1.4.2)树中所有结点可以有零个或多个后继结点;
    这里写图片描述

【2】下面理一理树中各种元素概念:

2.1)树叶:没有儿子的节点;
2.2)兄弟:具有相同父亲的节点;
2.3)路径:它是 从节点n1 到 nk 的路径定义为 节点n1、n2、……、nk 的一个序列, 使得 ni 是 n(i+1) 的父亲;
2.4)路径长度: 路径的长就是该路径上的边的条数;
2.5)节点ni 的深度: 根 到 ni 的唯一的路径长度;
2.6)节点ni 的高度: ni 到 叶子节点 的最长的路径长度;
2.7)祖先+后裔:如果存在 n1 到 n2 的一条路径,那么 n1 是 n2 的一位祖先,而 n2 是 n1 的一个后裔;


【3】树的实现

Attention)儿子兄弟表示法
如下图所示:向下的箭头(左指针)指向第一个儿子节点, 从左到右的箭头(右指针)指向下一个兄弟节点;(间接说明了树的节点有两个指针)
这里写图片描述
树节点定义代码如下:
这里写图片描述

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

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

相关文章

arduino蓝牙通讯代码_蓝牙4.0模块 无线数据传输模块 无线蓝牙串口 Arduino

产品介绍:蓝牙4.0模块是专为智能无线数据传输而打造的。该模块遵循BT2.1EDR/3.0/4.0(BLE)蓝牙规范,支持SPP 蓝牙串口协议等。本模块集成了MCU 和蓝牙芯片,支持UART、SPI、I2C、I2S 等接口,包含4 个PWM 端口和6 个12bit ADC 通道&a…

后台审核管理 ergo_Kogito,ergo规则—第2部分:规则的全面执行模型

后台审核管理 ergo这是第二后 一系列更新的Kogito主动性和我们的努力,使Drools的云。 在本文中,我们将深入研究规则单元的详细信息,并向您展示为什么我们对它们感到兴奋。 规则的全包执行模型 如果您一直在仔细检查Drools手册,以…

不相交集ADT(联机算法 + 脱机算法)

【0】README 0.1)本文总结于 数据结构与算法分析, 旨在分享 不相交集ADT的相关概念; 0.2) 不相交集ADT 的知识涉及到: 等价关系、动态等价关系、不相交集ADT相关操作及其数据结构 ,还有我们最后分享的 不…

win7无法连接打印机拒绝访问_Win7系统”windows无法连接到打印机拒绝访问“怎么办?通过创建local port端口连接来搞定...

随着电脑的使用率越来越高,我们有时候可能会遇到Win7系统”windows无法连接到打印机拒绝访问“的问题,要怎么处理呢?详细解决方法如下:故障现象:按照XP的方式添加打印机,总是会出现“windows无法连接到打印…

spring boot测试_测试Spring Boot有条件的合理方式

spring boot测试如果您或多或少有经验的Spring Boot用户,那么很幸运,在某些时候您可能需要遇到必须有条件地注入特定bean或配置的情况 。 它的机制是很好理解的 ,但有时这样的测试条件下(以及它们的组合)可能会导致混乱…

不相交集的求并算法(按集合大小求并+按高度求并)

【0】README 0.1)本文总结于 数据结构与算法分析, 但源代码均为原创,旨在实现 不相交集ADT的两个操作:合并集合union查找集合find; 0.2) 不相交集ADT 的 Introduction , 参见 http://blog.csd…

及时复盘的好处_该如何复盘 先来说说复盘的好处: 复盘的好处简直太多了!就像你学习一样有一个总结的过程,复盘的最直接好处就是增强你的“股感”!在股市... - 雪球...

来源:雪球App,作者: 孜孜金融,(https://xueqiu.com/3493013654/135651359)先来说说复盘的好处:复盘的好处简直太多了!就像你学习一样有一个总结的过程,复盘的最直接好处就是增强你的“股感”&am…

posman mocks_使用Mocks进行需求驱动的软件开发

posman mocksjmock作者撰写的有关模拟框架的优秀论文 。 本文写于18年前的2004年,但其中有许多构建可维护软件系统的技巧。 在这篇文章中,我将重点介绍本文中的关键思想,但建议您阅读本文以获取有关模拟和编程实践的重要思想。 模拟对象是测…

不相交集合求并的路径压缩

【0】README 0.1)本文总结于 数据结构与算法分析, 源代码均为原创, 旨在实现 对不相交集合的路径压缩操作; 0.2)对求并后的集合进行路径压缩,目的是降低集合(合并树)的深度&#x…

python 动态加载与静态加载_python中的元类、静态方法、类方法,动态添加方法...

首先介绍几个概念:1、#所谓的静态方法就是这个方法任何类都可以调用,程序一加载就存在的方法2、所谓的类方法就是这个类一加载就存在的方法,不用实例化这个类就已经存在的方法3、所谓的元类就是创建类的类元类: type我们知道对象是…

flutter调用api_如何在Flutter(REST API)中进行API调用

flutter调用api在本文中,我们将看一下如何快速进行API调用并使用简单的REST API。 在这里查看我在Flutter上的其他一些帖子: Flutter vs React Native 了解Flutter中的BLoC架构 (强烈建议) 在Flutter中构建ListView&#xff0…

java重载与重写的区别+重写父类equals方法的完美实现

【0】README 0.1) 本文章节【1】和【2】的内容转自 http://www.cnblogs.com/bluestorm/archive/2012/03/01/2376236.html ; 旨在区分重载与重写以及他们的相关概念; 0.2) 本文章节【3】的内容转自 http://blog.csdn.net/pacoson…

checkpoint_通过Main的Checkpoint Restore加快Java启动速度

checkpointJava虚拟机为已编译为字节码 (但不一定是用Java编写)的应用程序提供了托管运行时环境。 与为特定平台静态编译的代码相比,这为应用程序开发人员提供了许多好处,并且通常可以提高性能。 JVM通过垃圾回收器 (G…

泛型数组列表ArrayList

【0】README 0.1) 本文描述源代码均 转自 core java volume 1, 旨在理清 java 中的 数组列表 ArrayList; 【2】数组列表 ArrayList 2.1)ArrayList: ArrayList 具有自动调节数组容量的功能, 而不需要为此…

大数据聚类分析用于预测_多模态数据中的非负矩阵分解用于分割和标签预测

引用Akata Z, Thurau C, Bauckhage C. Non-negative matrix factorization in multimodality data for segmentation and label prediction[C]. 2011.摘要随着 Internet 上带注释的多媒体数据的可用性不断提高,要求有一种技术可以实现不同类型数据的原则性联合处理。…

程序员 rs编码_为什么声明性编码使您成为更好的程序员

程序员 rs编码在许多情况下,具有功能组成的声明式解决方案提供了优于传统命令式代码的出色代码指标。 阅读本文并了解如何使用具有功能组成的声明性代码成为一名更好的程序员。 在本文中,我们将仔细研究三个问题示例,并研究用于解决这些问题…

对象包装器与自动(拆箱)装箱+参数数量可变的方法+枚举类

【0】README 0.1) 本文描述源代码均 转自 core java volume 1, 旨在理解 自动拆箱(装箱)、printf的参数数量可变 以及 枚举类的详细说明; 0.2) 源代码: https://github.com/pacosonTang/core…

go 监测tcp 连接断开_TCP三次握手和四次挥手以及11种状态

三次握手置位概念:根据TCP的包头字段,存在3个重要的标识ACK、SYN、FINACK:表示验证字段 SYN:位数置1,表示建立TCP连接 FIN:位数置1,表示断开TCP连接三次握手过程说明:1.由客户端发送…

java序列化深克隆_如何在内存序列化中使用Java深克隆对象

java序列化深克隆在我以前的文章中,我解释了深度克隆和浅层克隆之间的区别 , 以及复制构造函数和防御性复制方法比默认的Java克隆如何更好。 使用复制构造函数和防御性复制方法进行的Java对象克隆当然具有某些优势,但是我们必须显式编写一些…

java反射机制+继承设计技巧

【0】README 0.1) 本文描述源代码均 转自 core java volume 1, 旨在理解 java反射机制 ;最后还顺带提出了 继承设计的技巧; 【1】反射相关 1)反射定义:能够分析类能力的程序称为反射; 2&…