【问题标题】:Confusion between the notion of height and depth of a node in Binary tree二叉树中节点的高度和深度概念之间的混淆
【发布时间】:2015-10-21 12:31:10
【问题描述】:

我一直在对二叉树进行一些研究,发现每个其他来源都对二叉树中节点的深度和高度给出了不同的概念。

我的想法

高度 = 从给定节点到叶节点的最大路径长度。

深度 = 从给定节点到根节点的边数。

        /*         
         *         1         (1)    level = 1, height = 3, depth = 0
         *        / \ 
         *       2   3       (3)    level = 2, height = 0, depth = 1
         *      / \    
         *     4   5         (5)    level = 3, height = 1, depth = 2
         *        / \ 
         *       6   7       (6, 7) level = 4, height = 0, depth = 3
         */

我从这个blog post 中得到了这个概念,但是当只有一个节点时我很困惑,即根它的高度是1

【问题讨论】:

  • @ZaphodBeeblebrox 看到我问题的最后一行。该链接没有解释这种疑问。
  • stackoverflow.com/questions/4065439/… 在询问之前先搜索一下,不会有任何害处。
  • @zaphod 是什么让你认为我没有搜索任何内容?我提出了我的高度和深度理论吗?我不是问它们是什么,我只是问我在各种概念中选择了这个,因为它对我来说更直观,唯一的困惑仍然是根节点的高度。说真的,您没有看到博客文章的链接?常见!
  • @CodeYagi “是什么让你认为我没有搜索任何东西?”我发布的链接回答了您的问题吗?

标签: algorithm binary-tree graph-theory


【解决方案1】:

简单地说,一个节点的深度就是你从根开始到达那个节点必须遍历的边数。节点的高度是您必须从该节点开始向下遍历以到达最远节点的边数。一棵树的高度就是它的根的高度。

【讨论】:

  • 当我们只有一个节点时会怎样?它的高度是多少?
  • @CodeYogi 在这种情况下它将为零。
  • 所以,你说单节点被认为是叶子而不是根,对吧?
  • @CodeYogi 单个节点被认为是叶子和根。叶子是因为它没有孩子,而根是因为它没有父母。
【解决方案2】:

来自您链接的帖子:

Height of node – The height of a node is the number of edges on the longest downward path between that node and a leaf.

我认为它说根的高度是1,参考单根的例子。

在你的例子中,我认为应该是:

/*         
     *         1         (1)    level = 1, height = 3, depth = 0
     *        / \ 
     *       2   3       (3)    level = 2, height = 0, depth = 1
     *      / \    
     *     4   5         (5)    level = 3, height = 1, depth = 2
     *        / \ 
     *       6   7       (6, 7) level = 4, height = 0, depth = 3
     */

编辑:好的,你更正了你的帖子,所以我帖子中的相关点是 我认为它说根的高度是1,参考单根的例子。

【讨论】:

    【解决方案3】:

    嗯,水平只是一个不直观的词,因为我们在视觉表示中看待树木之类的东西的方式。

    根据这篇博文,节点的级别定义为 1 + 节点与根之间的连接数。

    在这种情况下,所有这些级别都有意义。 7 距离 1 有 3 个连接。

    但是,您也有一些不正确的高度。请记住,高度是从节点到叶子的最长路径。所以 A 的高度是到 E 的路径的边数,而不是到 G。它的高度是 3。

      5
     /  \
    6    7 
    

    在该示例中,5 有 1 行子节点,这些子节点是叶节点,因此其高度为 1。但如果您将 6 和 7 视为单独的树,它们的高度为 0,因为它们是叶节点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-19
      • 2020-10-24
      • 1970-01-01
      • 2011-06-20
      • 2021-01-02
      • 1970-01-01
      • 2022-01-25
      相关资源
      最近更新 更多