树的高度与深度--真情版

article/2025/10/3 11:23:30

文章目录

  • 一. 前言
  • 二. 大话高度与深度
  • 三. OJ题中使用的版本
  • 四. 考研中使用的版本
  • 五. 总结


一. 前言

  数据结构-----树的学习过程中,我们会遇见一些摸棱两可的概念,比如树的度,子树的高度,子树的的深度等。我们时不时的会产生这样的困惑:“我参考学习的书籍明明是这样定义的,但有时又发现和别人讲的不同,在做一些OJ题的时候又不一样,孰是孰非,让大家变得很纠结。当然我也纠结过,纠结到底该学习哪一个版本。所以写一篇博客整理一下,让自己不再纠结。


二. 大话高度与深度

结点的度: 结点所拥有的子树(后继元、后继结点)个数
树的度:一棵树中结点的度的最大值
  对于这两者的定义全网还是比较统一的,我们不必深究,直接看例子:
在这里插入图片描述
  根据定义,A结点的度为4(它有四棵子树);B结点的度为0(它没有子树),叶子结点的度都是0D结点的度为3(它有三棵子树);F结点的度为1(它有一棵子树)······整棵树的度为最大结点的度,即A结点的度4,所以这棵树的度为4。

  对于结点深度高度的定义,根据教材书籍的不同,总的概括为两个版本,这两个版本的核心区别是:将树的根结点所在的位置定义为第0层,还是定义为第1层。

如下:

  《数据结构C语言版第二版》中国工信出版集团 人民邮电出版社出版 严蔚敏 编著 。该书将根结点所在的位置定义为第1层
  《数据结构与算法分析C语言描述》—典藏版 计算机科学丛书 机械工业出版社出版 【美】马克·艾伦·维斯(Mark Allen Weiss)编著 。该书将根结点所在的位置定义为第0层

  就是以以上这两个版本为主,这些书的共同点是: 深度的定义为从上至下,将高度的定义为从下之上,而树的高度和深度是相同的(记住此处是树而并不是结点)。

如下图:
在这里插入图片描述
  此处只作解释什么是从上至下,从下至上(对于整棵树而言):
D结点的深度从根结点到D结点之间叫深度(从上至下);
D结点的高度从以D结点为根结点的最远叶子结点到D结点之间叫高度(从下至上)。
  深度和高度的值与结点所在的层数有关,从而定义层数的方式不同,它们的值也是不同的,我们一起看看。

版本一:将根结点所在的位置定义为第一层

如下图:
在这里插入图片描述
结点的度: 结点所拥有的子树个数
结点的高度: 以该结点为根结点的树的最大层数(或者是以该结点为根结点的最远叶子结点到该结点唯一路径上的结点个数)
结点的深度: 结点所在的层数(或者是该结点到根结点的唯一路径上的结点个数)
树的度:整棵树中,结点的度的最大值
树的高度(深度):就等于树的层数(或者是叶子结点的深度;根结点的高度)
树的层数: 以根结点所在的位置为第一层,依次向下递增
  叶子结点的高度为1,根结点的深度为1

如上图:
  D结点的度:3(有三棵子树)
  D结点的高度:3(以D为根结点的树有三层,或者者以D为根结点的最远叶子结点到D结点的路径上有3个结点)
  D结点的深度:2(D结点所在的层数,或者D到根结点A的路径上有两个结点)
  树的度:4(结点的度的最大值,该结点是A)
  树的高度:4(等于层数,或者根结点的高度)
  树的深度:4(等于高度=层数,或者最远叶子结点的深度)


版本二:将根结点所在的位置定义为第0层

如下图:

在这里插入图片描述
结点的度: 结点所拥有的子树个数
结点的高度: 以该结点为根结点的树的最大层数(或者是以该结点为根结点的最远叶子结点到该结点唯一路径上的结点个数-1
结点的深度: 结点所在的层数(或者是该结点到根结点的唯一路径上的结点个数-1
树的度:整棵树中,结点的度的最大值
树的高度(深度):就等于树的层数(或者是叶子结点的深度;根结点的高度)
树的层数: 以根结点所在的位置为第0层,依次向下递增
  叶子结点的高度为0,根结点的深度为0

如上图:
   D结点的度:3(有三棵子树)
  D结点的高度:2(以D为根结点的树有2层,或者以D为根结点的最远叶子结点到D结点的路径上的结点个数-1(3-1=2))
  D结点的深度:1(D结点所在的层数,或者D到根结点A的路径上的结点个数-1(2-1=1)
  树的度:4(结点的度的最大值,该结点是A)
  树的高度:3(等于层数,或者根结点的高度)
  树的深度:3(等于高度=层数,或者最远叶子的深度)

注意
  深度以及高度都是不同的概念,用的人认为结点的度就是结点的高度或者深度,这是一个错误(曾经参考别人资料学习的时候碰见过)


三. OJ题中使用的版本


  来看看OJ题中使用的版本,上图,发挥图的强大。
在这里插入图片描述
  根据提供的例子,属于版本一,将根结点所在的位置定义为第一层。
在这里插入图片描述

  根据提供的例子,属于版本一。
在这里插入图片描述
  根据提供的例子,属于版本一。

  根据OJ题可以看出,在OJ题中将根结点所在的位置定义为第一层。属于版本一。


四. 考研中使用的版本


   对于这一块,关键还是得看所报考的院校。我看了一些学校的真题,学校不同,参考书籍也不一样。而考研数据结构又不是统考,是招生单位自主命题。所以如果有考研意向的同学一定要了解你所报考院校的情况。

五. 总结

  其实在很多时候我们碰见的都是版本一,即将根结点所在的位置定义为第1层。不管是刷OJ题也好,还是平时B站学习也好,包括计算二叉查找树的高度都是如此。在我学习的道路上,除了我手中的教材是将根结点所在的位置定义为第0层外(当时因为也不了解把我弄得够呛),其余碰见相关的都是将根结点所在的位置定义为第1层。所以我推荐重点还是看版本一。


❤️ ❤️ 我是“老胡”,感谢阅读 ❤️ ❤️


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

相关文章

树的高度、深度、层的区别

“高度”这个概念,其实就是从下往上度量,比如我们要度量第10层楼的高度、第13层楼的高度,起点都是地面。所以,树这种数据结构的高度也是一样,从最底层开始计数,并且计数的起点是0。 “深度”这个概念在生活…

【数据结构】树的高度和深度

1.高度 结点的高度:从该节点向下分支的叶节点开始自底向上逐层累加。 对于高度的理解,就拿楼房来说,我们会从底层开始往上数,假如楼有6层,则我们会说,这个楼有6层楼那么高。所以高度就是以从下往上对比&…

树的高度和深度以及结点的高度和深度

–> 参考链接 <– 树的高度和深度 深度定义是从上往下的&#xff0c;高度定义是从下往上的。&#xff08;其实不用在意这个&#xff0c;反正树的深度高度怎么数都一样的&#xff09;。 有两种说法&#xff1a; 高度就是深度看层数&#xff1a; 如果根结点第0&#xff…

树的深度与广度优先遍历

树是前端工程师最经常打交道的一个数据结构&#xff0c;比如说html标签组成的dom树、树形控件等。 在js中没有树这个数据结构&#xff0c;但是可以用Object和Array来构建树&#xff1a; //val是当前的节点值&#xff0c;children是子节点 const tree {val: A,children: [{va…

树的高度和深度的区别

树的高度和深度的区别 标签&#xff1a; 数据结构二叉树 2014-04-16 10:47 3362人阅读 评论(0) 收藏 举报 分类&#xff1a; 数据结构 版权声明&#xff1a;本文为博主原创文章&#xff0c;未经博主允许不得转载。 目录(?)[] 对于树的基本概念上理解&#xff0c;对于才接触…

树的深度和高度解释

有个缺点&#xff0c;看到什么东西不管是不是重点只要说不通总是爱钻牛角尖。 对于 树的高度和深度&#xff08;以及结点的高度和深度&#xff09; 看了几本不同的书&#xff0c;都有各自的说法&#xff0c;多方查证吧&#xff0c;花了很多时间&#xff0c;最后归纳一个能说服我…

大白话概念---树的高度和深度

树的高度和深度 &#xff08;本博客中使用图片为转载&#xff0c;侵删&#xff09; 1.深度 概念&#xff1a; 树的深度&#xff1a;距离根结点最远的结点所处的层数即为树的深度。 结点的深度我的课本上称为“层数”&#xff1a;即从根到该结点所经路径上的分支条数 空树深…

树的最大深度和最小深度(java)

目录 树的深度和高度二叉树的最大高度思路分析递归迭代 N叉树的最大深度LeetCode.559.N叉树的最大深度思路分析递归迭代 LeetCode.二叉树的最小深度思路分析递归迭代 树的深度和高度 什么是树的深度&#xff1f;什么是树的高度&#xff0c;一张图让你弄明白&#xff01;我们暂…

【数据结构】树

树 前言树的定义和基本术语二叉树二叉树的性质二叉树的存储遍历二叉树线索二叉树 树和森林树的存储结构 赫夫曼树及其应用总结 前言 最害怕的数据结构之一——树&#xff0c;另一个是图。主要是当时递归和链表没学好&#xff0c;遍历或插入的时候总是思路不清&#xff0c;一堆的…

树的高度和深度

1、树的深度 树的深度可以这样理解&#xff0c;计算一个节点的深度&#xff0c;从根节点算起&#xff08;记住从1开始计数&#xff0c;而不是0&#xff0c;程序员的通病在这不好使&#xff09;&#xff0c;到该节点所经过的节点数&#xff08;包括此节点&#xff09;为树的深度…

无线协议

一个AP的网络覆盖半径只有15米&#xff0c;需要布置多个AP&#xff0c;并且保证处在同一个网络中&#xff0c;受同一台或几台AC同一管理WDS&#xff0c;无线分布系统&#xff0c;俗称“无线桥接”指多个无线网络相互联结的方式构成一个整体的无线网络AP和AP之间通过无线信号互联…

Wi-Fi 安全协议 - RSN

RSN&#xff08;Robust Security Network&#xff0c;强健安全网络&#xff09; TKIP 和 CCMP只能解决数据完整和机密性问题&#xff1b;为解决认证问题&#xff0c;IEEE 802.11借鉴了802.1X&#xff0c;引入RSNA&#xff08;Robust Secure Network Association&#xff09;&a…

Wi-Fi 安全协议 - WPA

WPA (Wi-Fi Protected Access) 网络安全存取技术 WPA具有两种标准&#xff1a;WPA和WPA2&#xff0c;WPA2是WPA的增强型版本&#xff0c;增加了支持AES的加密方式。 WPA&#xff1a;由于WEP存在安全缺陷&#xff0c;在IEEE 802.11i提出前&#xff0c;Wi-Fi联盟&#xff08;WFA…

wifi协议-802

WIFI协议 http://standards.ieee.org/about/get/802/802.11.html https://en.wikipedia.org/wiki/IEEE_802 Name Description NoteIEEE 802.1Higher Layer LAN ProtocolsactiveIEEE 802.2LLCdisbandedIEEE 802.3EthernetactiveIEEE 802.4Token busdisbandedIEEE 802.5Defines t…

WIFI无线协议802.11a/b/g/n/ac的演变以及区别

毫无疑问&#xff0c;WiFi的出现普及带给我们巨大的上网便利&#xff0c;所以了解一下WiFi对应的802.11协议的演变和现在不同版本之前的区别也是非常有必要的。 1&#xff0c;常识普及 Wi-Fi是一种允许电子设备连接到一个无线局域网&#xff08;WLAN&#xff09;的技术&#…

WiFi各协议理论速度

一、总览 二、11b到11g提升点 802.11g工作在2.4G频段下&#xff0c;能够支持OFDM和CCK两种调制方式&#xff0c;提供16-QAM、64-QAM、BPSK和QPSK四种编码方式&#xff0c;我们通常说的54Mbps速率就是在2.4G频段下&#xff0c;通过OFDM调制&#xff0c;采用64-QAM编码的情况下实…

Wi-Fi 安全协议

无线网络的安全要求 机密性&#xff1a;确保数据不会泄露&#xff0c;防止数据被未经授权的第三者拦截。 帧主体加密机制&#xff08;frame body encryption&#xff09;&#xff1a;主要用来提供机密性。完整性&#xff1a;确保数据在传输过程中不被修改了。 完整性检验机制&…

图解 802.11wifi协议

微信公号&#xff1a;卢同学 关注可了解更多。若有问题或建议&#xff0c;请与本人联系; 目录 凡事若能综观形势&#xff0c;通常有助于细节的进一步探究 从OSI七层模型来看&#xff0c;802规范的重心放在OSI模型最下面的两层&#xff0c;即数据链路层和物理层。 数据链路层又…

无线协议架构

目录 1 无线协议架构 1.1 用户面 1.2 控制面 2 多无线双链接 3 无线接入网络共享 1 无线协议架构 1.1 用户面 用户面的协议架构如下图所示&#xff0c;SDAP, PDCP, RLC和MAC各层&#xff08;在gNB的网络端终止&#xff09;所具…

无线局域网安全协议(WEP、WPA、WAPI)

文章目录 一、WEP&#xff08;有线等效保密&#xff09;二、WPA&#xff08;Wi-Fi网络安全接入&#xff09;三、WAPI&#xff08;无线局域网鉴别和保密基础结构&#xff09; WLAN&#xff08;Wireless Local Area Network&#xff09;指应用无线通信技术将计算机设备互联起来&a…