树高的定义是什么?

Bra*_*rad 17 math heap tree data-structures

我似乎无法为此找到明确的答案,我正试图在堆上做一些基本的证明,但这里有什么东西让我失望:

空树是否有效?如果是这样,它的高度是多少?
我认为这将是0.

具有单个节点的树的高度是多少?
我认为这将是1,但我已经看到定义它是0(如果是这种情况,那么我不知道如何考虑一个空树).

Arn*_*shn 18

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

仅具有根节点的树具有高度0,具有零节点的树将被视为空.空树的高度为-1.请检查一下.

我希望这有帮助.

  • 高度为-1的空树的约定实际上在AVL树中有一些实际用途,因为它简化了平衡因子的计算以及何时旋转子代。该实现在实践中展示了它:http://users.cis.fiu.edu/~weiss/dsaajava/code/DataStructures/AvlTree.java (2认同)

nlu*_*oni 9

我想你应该看看NIST网站上的算法和数据结构词典.有身高定义说,一个单一的节点是高度为0.

有效树定义确实包含空结构.该网站没有提到这种树的高度,但根据高度的定义,它也应该是0.

  • 实际上,“新” [定义](http://xlinux.nist.gov/dads//HTML/height.html)表示未定义空树的高度。 (2认同)

Max*_*keh 5

我已经看到它以两种方式使用(将单个节点计为0或1),但是大多数源将仅将根树定义为高度为0的树,并且不会认为0节点树有效.