树的高度和深度 | 结点的高度和深度「建议收藏」

树的高度和深度 | 结点的高度和深度「建议收藏」有个缺点,看到什么东西不管是不是重点只要说不通总是爱钻牛角尖。对于树的高度和深度(以及结点的高度和深度)看了几本不同的书,都有各自的说法,多方查证吧,花了很多时间,最后归纳一个能说服我的说法吧。(´。•ᵕ•。`)♡树的高度和深度深度是从上往下定义的,从根结点开始数,高度是从下往上定义的,从叶子结点开始数。这个涉及到结点的层数,有的教材规定根结点在第0层,有的则规定根结点在第一层。…

大家好,又见面了,我是你们的朋友全栈君。

有个缺点,看到什么东西不管是不是重点只要说不通总是爱钻牛角尖。

对于 树的高度和深度(以及结点的高度和深度) 看了几本不同的书,都有各自的说法,多方查证吧,花了很多时间,最后归纳一下。(´。• ᵕ •。`) ♡


的高度和深度

在这里插入图片描述
深度定义是从上往下的,高度定义是从下往上的。(其实不用在意这个,反正树的深度高度怎么数都一样的)。

深度和高度涉及到结点的层数有的教材规定根结点在第0层,有的则规定根结点在第1层。原理都是一样的,因教材而异。

树从根结点开始往下数,叶子结点所在的最大层数称为 树的深度

有的教材对于树的高度定义是高度就是深度(层数是0123,深度=高度=3;层数是1234,深度=高度=4);而有的教材树的高度则是看一共有几层。也就是说不论根节点在第几层,树的深度都是和最大层的叶子节点一样。而树的高度只要看有几层就行了(0123是四层,1234也是四层)。

总之在我看来:

有两种说法:

  1. 高度就是深度
  2. 看层数:
    如果根结点第0,层数=深度=高度-1
    如果根结点第1,层数=深度=高度

举个栗子_(:3 」∠ )_:

在这里插入图片描述  树的高度和深度 | 结点的高度和深度「建议收藏」0

层数 从第0层开始 从第1层开始
最大层数 4 5
深度 4 5
高度(高度=深度) 4 5
高度(数层数) 5 5

补充:

根节点在第0层时候,按照北大数据结构视频的说法就是高度数结点数,深度数路径。从A到G,节点是5层,中间有4段路径,所以深度4,高度5。
其实也可以理解为数高度时候叶子结点从1开始数。因此空数高度0,只有一个根节点高度1。

但是在清华大学 邓俊辉数据结构书中如下:
在这里插入图片描述
这本书中可以看出数高度时候叶子结点是从0开始的,因此空数高度-1,只有一个根节点高度0。


结点的高度和深度

在这里插入图片描述
结点的深度也是从根结点开始数,是第几层也决定于根结点在第0层还是第1层。根结点的高度则取决于它的子树,该节点子树中最远的那个叶子结点作为1开始数。

例如对于BCD三个点:

B的子树是C和D,数B的高度时候,B的子树中离B最远的叶子节点是G,所以G高度为1,B高度4D高度3。但是C是叶子节点,C没有真子树,C高度就是1

在这里插入图片描述  树的高度和深度 | 结点的高度和深度「建议收藏」0

BCD高度(叶子节点>=0) 4 1 3 4 1 3
BCD高度(叶子节点>0) 3 0 2 3 0 2
BCD深度 1 2 2 2 3 3

参考书籍和视频课:
  1. 《数据结构(C++版) 》 第二版 清华大学出版社 王红梅
  2. 《数据结构(C++语言版)》 第三版 清华大学出版社 邓俊辉
  3. 《数据结构(用面向对象方法与C++语言描述) 》 第二版 清华大学出版社 殷人昆
  4. 《数据结构高分笔记》2019版 机械工业出版社 天勤考研
  5. 北京大学 数据结构与算法
  6. 华南理工大学 数据结构与算法

(*´ω`)人(´ω`*)我是萝莉安,今天钻牛角尖也成功了呢

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/141515.html原文链接:https://javaforall.net

(0)
上一篇 2022年5月25日 下午6:20
下一篇 2022年5月25日 下午6:40


相关推荐

  • 最有效的最新防360拦截方法大全![通俗易懂]

    最有效的最新防360拦截方法大全![通俗易懂]首先声明,现在对于360拦截,没有任何一种方法是绝对有效的。因为存在举报,同一网站举报次数达到5次以上就会有360公司的员工接入人工审核,人工接入的话,再好的技术都是百搭,所以我这里的技术可以说绝对拦得住“机器审核”,具体“拦截时间未知”(因为不知道您的竞争对手什么时候会给您搞点小动作)我总结的方法一共有5种,都做过测试,分析出优缺点。具体如下:方法一:用框架调用主页,也就

    2025年8月10日
    4
  • 如何解决数据库查询慢的问题_炖锅怎么那么慢熟

    如何解决数据库查询慢的问题_炖锅怎么那么慢熟一条慢查询会造成什么后果?年轻时,我一直觉得不就是返回数据会慢一些么,用户体验变差?其实远远不止,我经历过几次`线上事故`,有一次就是由一条SQL慢查询导致的。

    2022年10月14日
    4
  • 欢迎大家访问我的博客

    欢迎大家访问我的博客

    2021年9月4日
    48
  • sqlserver 视图创建索引_Oracle创建索引

    sqlserver 视图创建索引_Oracle创建索引一、索引1、添加索引createindex索引对象名on索引对应表名(表内索引对象字段名);例:需创建包含userid属性的userinfo表。createindexuseridonsystem.userinfo(userid);2、删除索引dropindex索引对象名;例:dropindexuserid;二、视图(并不是真实存在的一张表)1、创建视图createview视图名(学号,姓名,科目,成绩)asselect对应在表格中的字段名from涉

    2025年9月27日
    7
  • 敏捷软件开发 原则_敏捷方法论

    敏捷软件开发 原则_敏捷方法论《敏捷软件开发》读书分享由于书是由英文书籍翻译,读起来会难免拗口,本次分享是由《敏捷软件开发》结合网上相关资料总结而成。传统的瀑布式开发瀑布模型式是最典型的预见性的方法,严格遵循预先计划的需求、分析、设计、编码、测试的步骤顺序进行。步骤成果作为衡量进度的方法,例如需求规格,设计文档,测试计划和代码审阅等等。瀑布式的主要的问题是它的严格分级导致的自由度降低,项目早期即作出承诺导致…

    2025年6月28日
    3
  • 计算机网络重置点命令,重置网络命令 重装系统如何重置网络命令

    计算机网络重置点命令,重置网络命令 重装系统如何重置网络命令最近有用户在重装系统后想要重置网络命令 但又不知道该如何操作 下面小编就给大家介绍一下重装系统重置网络命令的方法 一 重置网络设置命令 1 我们打开开始菜单 然后在运行中输入 CMD 点击确定 或按回车键 把命令提示符窗口打开 2 我们在命令提示符中输入 netshwinsock 按回车键执行命令 3 稍后就会有成功的提示 成功地重置 Winsock 目录 重启计算机完成重置 4 网络

    2026年3月19日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号