Math 树的高度定义是什么?

Math 树的高度定义是什么?,math,data-structures,tree,heap,Math,Data Structures,Tree,Heap,我似乎找不到一个明确的答案,我正在尝试对堆进行一些基本的证明,但以下是让我有点不舒服的地方: 空树有效吗?如果是,它的高度是多少? 我想这应该是0 单节点树的高度是多少? 我认为这应该是1,但我已经看到了它是0的定义(如果是这种情况,那么我不知道如何解释空树)。树的高度是从树的根到其最远节点(即离根最远的叶节点)的路径长度 只有根节点的树的高度为0,节点为零的树将被视为空树。空树的高度为-1。请查收 < P >我希望这有帮助。 < P>我已经看到它在两种方式中使用(计数单个节点为0或1),但大多

我似乎找不到一个明确的答案,我正在尝试对堆进行一些基本的证明,但以下是让我有点不舒服的地方:

空树有效吗?如果是,它的高度是多少?
我想这应该是0

单节点树的高度是多少?

我认为这应该是1,但我已经看到了它是0的定义(如果是这种情况,那么我不知道如何解释空树)。

树的高度是从树的根到其最远节点(即离根最远的叶节点)的路径长度

只有根节点的树的高度为0,节点为零的树将被视为空树。空树的高度为-1。请查收


< P >我希望这有帮助。

< P>我已经看到它在两种方式中使用(计数单个节点为0或1),但大多数源将定义一棵根树作为高度树0,并且不考虑0节点树有效。

< P>根据一个节点的(子)树的高度为0。没有节点的树的高度为-1。但是我认为这取决于你,你如何定义高度,你的证明应该与这两种定义一起工作。

我认为你应该看看NIST网站上的。这里说单个节点的高度为0


确实包含一个空结构。网站没有提到这样一棵树的高度,但根据高度的定义,它也应该是0。

如果你的树是一个递归定义的数据结构,它可能是空的,或者是一个带有左右子树的节点(例如搜索树,或者你的堆),然后,自然定义是将0指定给空树,将1+最高子树的高度指定给非空树


如果树是一个图,那么自然定义是从根到叶的最长路径,因此纯根树的深度为0。在这种情况下,您通常甚至不会考虑空树。

< P>树的高度是其子节点中的一个终端节点最长路径的长度。


维基百科说。我不同意。空树实际上只是包含一个终端节点的树(表示空树的null或特殊值)。由于节点没有子节点,因此其最长路径的长度必须为=0,而不是-1

同样,非空树有两个子树,因此根据定义,至少有一条到终端节点的路径>=1

我们可以如下定义我们的树:

type 'a tree =
    | Node of 'a tree * 'a * 'a tree
    | Nil

let rec height = function
    | Node(left, x, right) -> 1 + max (height left) (height right)
    | Nil -> 0

P.>树高是D的最长路径的D级,加上1根。D 2,这棵树是空的,它不会有任何级别的N V不能认为它有零点,COZ水平的根S 0…所以空树级是-1,比2,它的1 + 1=0…所以空树的零s D高度…BT n许多书HAV给- 1 BT没有解释< < /P> >谢谢,很高兴有一个可靠的来源引用这一点(不要认为教授或同行评审会认为维基百科是一个可接受的来源)。他们的定义似乎有点矛盾,他们将树定义为“空(无节点),或根和零或更多子树”。但是他们对高度的定义是根据根节点来定义的。我想,由于缺乏权威的引用来源,我会说一棵空树有一个未定义的高度。这样,高度为h的完整二叉树中的节点数介于2^h和2^(h+1)-1之间。如果你用n来解h,当树为空时,你会得到log2(0)=未定义。它至少有一个清晰的定义和很好的证明。空树的高度没有定义。树的高度是该树的根音符的高度(一加上其子音符的最大高度,如果没有子音符,则为零)。空树没有根节点,因此不能说它有高度。事实上,新的说明没有定义空树的高度。FWIW,CLR在这里似乎受到“空恐惧”的影响。Knuth建议(尽管引用是经过的)空树的高度应该为零。NIST效仿CLR的决定是不幸的;它不必要地使想要使用高度概念的代码复杂化。“空树实际上只是包含一个终端节点的树。”不,甚至比这更空……我相信这是实现中使用的约定问题。当树中有一个或多个节点时,所有正高度值和高度值零都将被表示,因此应该有一些东西来表示空树。因此,公约将其定为-1。可以将其作为任何其他负值。这是一个实现问题,因为数据结构的实际抽象-树不会涵盖这些内容。空树的高度为-1的约定实际上在AVL树中有一些实际用途,因为它简化了平衡因子的计算以及何时轮换子树。这个实现在实践中表明了这一点:我想指出,(a)你显然是对的,(b)NIST和许多其他人不以我们的方式看待事情。我相信这种不幸的情况主要是由于CLR“害怕无效”。