首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >形象化平衡树

形象化平衡树
EN

Stack Overflow用户
提问于 2015-03-29 00:26:24
回答 2查看 475关注 0票数 1

根据以前的StackOverflow答案,二叉树是平衡的,当它的两个子树的高度从未相差超过一个(完全二叉树定义)时。

这是否等同于说:二叉树是平衡的,当且仅当每条从根到叶的路径上的边数最多有一个不同?

我正试图想象二叉树和非二叉树是什么样子的,我正挣扎着把我的头脑围绕在这个概念上。

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-29 00:34:37

几乎,除非其中一个子树是空的:

代码语言:javascript
运行
复制
*
 \
  *
   \
    *

你引用的定义有点问题,因为一棵空树并没有真正的高度,但是如果你把空树定义为高度-1,它会起作用。上面的树是不平衡的,因为(空的)左子树有高度-1,而右边的子树有高度1。然而,您的定义将声明树是平衡的:只有一条根对叶路径,所以不可能与其他路径不匹配。

然而,平衡只部分地与二元性有关。二进制只意味着任何节点都没有两个以上的子节点。下面是一个平衡的非二叉树的例子:

代码语言:javascript
运行
复制
   *
  /|\
 * * *

然而,树的对称性(对子节点数量的限制)可能会影响其平衡性。如果声明以下树为二进制树(只有两个子树,高度为1和0),则为平衡树;如果声明为三元树,则为不平衡树(有根的中间子树,且为空子树):

代码语言:javascript
运行
复制
    *
   / \
  *   *
 /
*
票数 1
EN

Stack Overflow用户

发布于 2015-03-29 00:41:01

二叉树应该只,每个节点最多有两个子节点。我发现了一个站点,它显示不同的数据结构(您可以使用它们,它们是动画的)。

如果您对自平衡树感兴趣,请查看AVL树,您将了解二叉树为什么会不平衡。祝好运!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29324245

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档