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。