【发布时间】:2013-12-28 17:58:19
【问题描述】:
我不确定如何确定一棵树是否平衡、完全平衡,或者如果我将其作为图片而不是代码则两者都没有
例如,如果我有这棵树 如何检查它是平衡的、完全平衡的还是不平衡的? 谁能给我一个完美平衡树的例子?
[o]
/ \
[b] [p]
\ / \
[d] [m] [r]
很明显,如果树是这样的,我可以看出它是不平衡的:
[b]
\
[d]
\
[r]
\
[c]
但是,如果它与上面的非常相似,我不知道如何获得它
这是一棵完美平衡的平衡树:
[k]
/ \
[A] [p]
/ \
[N] [R]
谁能给我解释一下?
【问题讨论】:
-
虽然 BST 代表二进制“搜索”树,但除了搜索和返回布尔值之外,它还可以作为一种非常快速的数据类型,以排序方式插入、删除、读取数据块。但是,正如您在上一个 sn-p 中所展示的那样,AVL 并不是一个完美平衡的二叉树,因为它仅将级别差视为最大为 1。完美平衡二叉树 (PBBT) 应该关心左右之间的大小差异最大为 1,以便在搜索以外的任务中更有效率。
标签: java c tree binary-tree binary-search-tree