树的高度,深度,层数,度的辨析与解释

article/2025/10/20 5:33:08

一.高度和深度辨析

关于树的深度和高度的计算,我看到两个不同的说法,它们的区别就在于到底是从0开始计算还是从1开始计算。(网上的和算法题偏向说法二,如果有能找到更加权威的解答望不吝赐教)


说法一:
《数据结构与算法分析:C语言描述》 第2版中的第4.1节中:

这里写图片描述


说法二:
来自:树的高度和深度的区别

这里写图片描述

K节点在树的底层,是一个叶子节点,则一般定义为K的高度在最低为1,以此类推,O的高度也是为1,P的节点也是为1。M节点是叶子节点O的父节点,从下往上数,M节点高度为2。那么G节点的高度是多少呢?从G-L的高度为2,从G-M-O节点高度为3,到底G节点高度为多少呢,正确答案是3,请看定义:
1.高度的定义为:从结点x向下到某个叶结点最长简单路径中边的条数
注意:对于是否是边的条数这个不清楚,待我后来查证,这个主要是由于其初值是1还是0来确定的,一般都是以1开始

2.深度
理解了高度,则深度的理解就很容易了,深度是从根节点往下,列如上图中:B的深度为2。

二.层数和度的解释

层数:根节点为第一层,往下一次递增。

树中节点的最大层数称之为树的深度或者高度,所以在基数为1时树的深度=树的高度=最大层数

但是节点的深度和高度并没有必然的关系

节点的度:节点拥有的子树的个数,度为0的节点称之为叶子节点

  • 树的度:是树内所有节点度的最大值
  • 树的深度:树内所有节点深度的最大值,也就是所有叶子节点深度的最大值,也就是树的层数
  • 树的高度:树内所有节点高度的最大值,也就是根节点的高度,也就是树的层数

http://chatgpt.dhexx.cn/article/ePr1Kjgp.shtml

相关文章

树的节点、度数、高度、深度、遍历

1.节点的度与树的度 节点的度:结点拥有的子树数目称为结点的度,叶子结点 就是度为0的结点 树的度:树内各结点的度的最大值 分支节点:度不为0的节点 -------------------------------------------------- 节点数nn0n1n2&#…

数据结构——树

数据结构笔记目录: 1. 绪论、时间复杂度 2. 线性表 3. 树 4. 图 5. 查找 6. 排序 3.1 树 3.1.2 基本定义 n 个结点的有限集( n ≥ 0 n \ge 0 n≥0 ) 每棵树只有一个根结点其余结点分为 m 个有限集,每个有限集都是树 1. 定义 逻辑结构 一对多 &#…

如何理解数据结构中树的度(树的度是什么意思)?

在数据结构中,树是一对多的存在,如下图是一颗树。 结点拥有的子树个数称为结点的度,比如结点①的度为4,结点②的度为0,结点③的度为3。 对于树而言,树的度为树内各结点最大的度,从图中可知&…

数据结构(二叉树)

1. 二叉树 1.1 完全二叉树 除最后一层外,每一层的节点达到最大值,在最后一层只缺少右边v1若干节点 2. 关于树的三种逻辑算法(如下图) 2.1 树的总节点数等于每层节点数之和(计数)。 2.2 树的总结点数等于所有不同度数的节点数…

树的度是什么

https://www.zhihu.com/question/294774611 问题 树的节点的度是指节点的子树个数,那树的度是什么? 回答 树节点的度数即为该节点孩子的个数。 这是一棵树,树的度指其中节点的度最大值。 比如1号节点的孩子是2、3、4,则1号节点的度数是…

java 构造函数和super

package one; class book {book(){System.out.println("这是没有参数的父类的构造方法");}book(int i){System.out.println("有参数 父类的构造方法");}public void get(){System.out.println("book父类");}} class dictionary extends book {…

java构造函数使用方法总结

转载自:http://longying2008.iteye.com/blog/1535722 仅用作学习使用 使用构造器时需要记住: 1.构造器必须与类同名(如果一个源文件中有多个类,那么构造器必须与公共类同名) 2.每个类可以有一个以上的构造器 3.构…

Java 构造函数的详解

我们人出生的时候,有些人一出生之后再起名字的,但是有些人一旦出生就已经起好名字的。那么我们在java里面怎么在对象一旦创建就赋值呢? 1.构造方法的作用: 构造方法作用:对对象进行初始化. 如图: 2.构造函…

java构造函数的调用

一、使用this关键字 构造函数的调用,需要使用this关键字 this(); //调用无参构造函数Food() this(name); //调用有参构造函数Food(String name)作用: 在一个构造函数中调用另一个构造函数,主要是为了增加代码的复用性。 …

java怎么写函数_java构造函数怎么写

java构造函数怎么写 发布时间:2020-06-29 11:50:19 来源:亿速云 阅读:114 作者:Leah java构造函数怎么写?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的…

java中的构造函数。

我们这篇文章说的是构造函数,那么它与我们平时写的函数有哪些不同呢?有很大的不同了。 特点:1函数名与类名相同 2不用定义返回值类型。 3不可以写return语句。 作用:给对象进行初始化。 注意:1默认构造函数的特点。 2多个构造函数是以重载的形式存在的…

Java构造函数(构造方法)的简介说明

转自: Java构造函数(构造方法)的简介说明 Java构造函数(构造方法) java中的构造函数是一种特殊类型的方法, 用于初始化对象。 Java构造函数在对象创建时被调用,调用构造函数时,它会创建一个对象,并返…

HED图像边缘检测-程序运行的问题解决方法

论文全名:[2015](HED_FCN)Holistically-Nested Edge Detection.pdf 代码下载地址:https://github.com/s9xie/hed 附上一篇个人认为写的比较好的论文笔记:http://blog.csdn.net/u012905422/article/details/52782615 注意事项: …

HID协议

转自:https://blog.csdn.net/zhoutaopower/article/details/82469665 1.简述 USB HID类是USB设备的一个标准设备类,包括的设备非常多。HID类设备定义它属于人机交互操作的设备,用于控制计算机操作的一些方面,如USB鼠标、USB键盘、…

图像处理——基于深度学习HED实现目标边缘检测

前言 使用传统的图像来检测目标边缘,受到干扰的因素太多了,而已鲁棒性不高,同样的参数,在这个环境下可以,换个环境就根本检测不到物体的边缘,或者把不是边缘的也检测进去了。ICCV2015有人提出了整体嵌套边…

边缘检测系列3:【HED】 Holistically-Nested 边缘检测

引入 除了传统的边缘检测算法,当然也有基于深度学习的边缘检测模型 这次就介绍一篇比较经典的论文 Holistically-Nested Edge Detection 其中的 Holistically-Nested 表示此模型是一个多尺度的端到端边缘检测模型 相关资料 论文:Holistically-Nested…

【论文阅读】(边缘检测相关)HED:Holistically-Nested Edge Detection

论文地址:https://arxiv.org/pdf/1504.06375.pdf Holistically:整体 Nested:嵌套的 参考博客:深度学习论文笔记之(一)HED边缘检测_大青上的博客-CSDN博客_深度学习边缘检测 边缘检测之HED_年轻即出发&#…

深度学习hed边缘检测模型之裂缝检测

裂缝检测原本采用分割模型较多,目前我测试了采用hed的裂缝检测;代码采用这个版本的代码是最简洁易懂的,https://github.com/senliuy/Keras_HED_with_model 环境:win10 keras2.2.4 hed.py from keras.layers import Conv2D, …

hed-训练自己的数据集

1、准备自己训练的原图和边缘图,边缘图制作参考https://blog.csdn.net/weixin_38517705/article/details/84670150 2、将制作好的数据集放在.../rcf-master/data下,我是分为两个文件夹,一个存放原图(hed)、一个存放边…

HED边缘检测

主要是“Holistically-Nested Edge Detection ”这一篇文章 code download:https://github.com/s9xie/hed 这篇边缘检测主要是基于caffe框架下的,所以要实现的时候要在自己电脑上编译caffe,caffe安装编译可以看本人的博客:http:…