Tree 这一限制性商业惯例如何被认为是平衡的?

Tree 这一限制性商业惯例如何被认为是平衡的?,tree,binary-tree,binary-search-tree,red-black-tree,red-black-tree-insertion,Tree,Binary Tree,Binary Search Tree,Red Black Tree,Red Black Tree Insertion,我一直在玩RBT可视化工具,不明白下面这些是如何被认为是高度平衡的。维基百科的文章声称,如果RBT属性得到满足,那么最远叶子的高度不超过最近叶子高度的两倍。根据我的理解,即使满足RBT属性(深度1为1,深度6为3),以下内容也会违反此属性。我的逻辑哪里有缺陷? 来自: 红黑树的叶节( 无  在图1)中,不包含键或数据。这些“叶子”不必是计算机内存中的显式个体:空指针可以——就像在所有二叉树数据结构中一样——对(父)节点中此位置没有子节点的事实进行编码。然而,通过它们在树中的位置,这些对象与其他节

我一直在玩RBT可视化工具,不明白下面这些是如何被认为是高度平衡的。维基百科的文章声称,如果RBT属性得到满足,那么最远叶子的高度不超过最近叶子高度的两倍。根据我的理解,即使满足RBT属性(深度1为1,深度6为3),以下内容也会违反此属性。我的逻辑哪里有缺陷?

来自:

红黑树的叶节( 无  在图1)中,不包含键或数据。这些“叶子”不必是计算机内存中的显式个体:空指针可以——就像在所有二叉树数据结构中一样——对(父)节点中此位置没有子节点的事实进行编码。然而,通过它们在树中的位置,这些对象与其他节点相关

您在问题中包含的图表省略了这些
NIL
节点,但它们与平衡点的确定相关。使用您描述的规则(“从根到最远叶的路径长度不超过从根到最近叶的路径长度的两倍”),从根到最近叶的路径距离为两(不是一),从根到最远叶的路径距离为四(不是三)


因为四不超过二倍,所以这棵树符合“平衡”规则。

谢谢-我相信这里有一些混淆,因为AVL树NIL节点的高度被认为是-1,所以在计算叶子的高度时,它总是0。似乎使用RBT时,叶子的高度始终为1,这与AVL树不同。你同意这个解释吗?我必须更仔细地回顾一下,但IIRC AVL树根本不关心节点本身的深度/高度,也不关心空子节点(NIL)的不同处理。AVL树侧重于左/右平衡,根据每侧(左或右)子体的相对数量,为每个节点分配-1、0或1的平衡因子。这就是说,作为一般规则,您可以正确地观察到,您不必从一个特定的抽象数据结构概念中获取术语,而在另一个概念中重复使用完全相同的术语。总有一些细微的差别。是的,你的回忆是正确的,但不完全正确。。。它实际上取决于相对高度,相对高度与节点数相似,但不同。谢谢你的反馈!