【发布时间】:2022-01-14 01:23:08
【问题描述】:
AVL 树是平衡的二叉搜索树,即高度 = O(log(n))。这是通过确保每个节点都遵循 AVL 树属性来实现的:
左子树的高度(LST) - 右子树的高度(RST)是 在 [-1, 0, 1] 范围内
其中高度(LST) - 高度(RST) 称为给定节点的平衡因子(BF)。
节点的高度通常定义为“从该节点到最深节点的路径长度(#edges)” 例如:
根据这个定义,叶子的高度为 0。 但几乎每次讨论 AVL 树时,人们都认为 叶子的高度为 1。
我的问题是,我们可以把叶子的高度设为 0 吗?这将使以下 BST 也成为 AVL 树,对吗?
由于这些文章,高度概念让我感到困惑:
- https://www.geeksforgeeks.org/minimum-number-of-nodes-in-an-avl-tree-with-given-height/
- https://www.tutorialspoint.com/minimum-number-of-nodes-in-an-avl-tree-with-given-height-using-cplusplus
首先,它们从 0 开始高度。 然后他们说,高度为 2 的 avl 树为 4 所需的最小节点数但是如果高度从零开始,我也可以拥有以下 AVL 树,对吗?
【问题讨论】:
标签: data-structures tree binary-search-tree avl-tree