Data structures 树的深度与水平

Data structures 树的深度与水平,data-structures,tree,Data Structures,Tree,它们是一样的吗 本文 深度定义为从节点到树的根节点的边数,同时 级别定义为 1+节点和根节点之间的连接数。“ 或者基本上是深度+1 在这个链接中 据说,level可以从1开始,也可以从0开始,这使得level与depth的值相同 那么哪个是哪个呢?如果是1+深度,那么添加1有什么用呢?好吧,最好用一张图片来解释,如下所示: // I've used 1 for roots level // though some people consider roots level as 0, so you

它们是一样的吗

本文

深度
定义为从节点到树的根节点的边数,同时
级别
定义为

1+节点和根节点之间的连接数。“

或者基本上是深度+1

在这个链接中

据说,level可以从1开始,也可以从0开始,这使得level与depth的值相同


那么哪个是哪个呢?如果是
1+深度
,那么添加1有什么用呢?

好吧,最好用一张图片来解释,如下所示:

// I've used 1 for roots level
// though some people consider roots level as 0, so you can use either 0 or 1
// I would prefer to use 1
// but its your choice

                                   o(depth=0, height=3, lev=1)
                                 /   \
      (depth=1, height=2, lev=2)o     o(depth=1, height=1, lev=2)
                               /     / \
    (depth=2, height=1, lev=3)o     o   o(depth=2, height=0, lev=3)
                             /
  (depth=3, height=0, lev=4)o

我希望你现在明白了……

之所以问这个问题,是因为已经有很多关于树的高度和深度的问题,但在树的水平和深度上没有明确的区别,并且经常互换使用

正如我在这里读到的,在不同的文章和一本书中

级别为深度+1。虽然有些人选择以0开始级别,但深度与此不同

深度主要与根部有关,如

深度是从根到节点的边数

因此,它主要被视为一个节点的属性,而级别主要作为一个整体使用

宽度是级别中的节点数

或者

一个完美的二叉树是所有内部节点都有两个子节点,并且所有的叶子都在同一级别

所以level就像树中的步骤,其中根节点是第一步,恰好它与节点的深度共享相同的模式


虽然没有单一的定义,但为了区分这两个术语,级别通常被视为深度+1。

我认为没有单一的定义。如果作者想根据自己的需要定义深度和级别,这似乎是有效的,但对我来说,将这两个术语分开似乎很奇怪。为什么不将它们都0-index?这似乎不是一个新的定义问题。这在您提供的链接中有介绍,您应该承认没有唯一的定义。人们对建筑物楼层的编号方式也是如此:在美国,一楼通常编号为1,而在我居住的地方,通常编号为0。