回答
假设由“平衡”,你的意思是“高度平衡”的AVL树感觉,你可以存储任意信息为每个节点,
- 对于后序的每个节点,
- 如果其中一个孩子不存在,则假设其各自的身高为0.
- 如果两个孩子的身高相差超过一个,那么树就不平衡。
- 否则,此节点的高度是两个孩子身高中较大的一个。
- 如果达到了这一点,树就是平衡的。
一种方式进行后序遍历:在根
- 开始
- 环
- 如果此节点的左子存在,没有它的高度计算,请访问其左孩子旁边。
- 否则,如果此节点的右侧子节点存在并且没有计算其高度,请访问其右侧的子节点。
- 其他
- 计算此节点的高度,可能返回早
- 如果此节点是不是根,下次光临其父。
- 如果达到了这一点,树就是平衡的。
非常感谢准确的答案。是的,我的意思是身高平衡。我在哪里可以找到这个函数在C++中的实现? – user2000916
@ user2000916你可以写一个。关于一些实现细节 - 您可以将深度存储为两个变量(访问/未访问,深度)或一个(如果访问深度,则为0,如果未访问) –
基本上我需要此实现的迭代版本:http://www.geeksforgeeks .org/how-to-determine-if-a-binary-tree-is-balanced/ – user2000916
- 1. 检查二叉树是否平衡
- 2. 检查二叉树是否平衡
- 3. 检查二叉树是否为二叉搜索树的函数?
- 4. 平衡二叉树
- 5. 平衡二叉树的索引函数
- 6. 二叉树属性 - 平衡
- 7. 平衡二叉搜索树
- 8. 左平衡二叉树
- 9. 无法平衡二叉树
- 10. 生成平衡二叉树
- 11. 不平衡二叉树
- 12. 二叉树中的平衡和数
- 13. 平衡二叉搜索树子树
- 14. 直观的方式来了解树递归 - 编写代码,以检查是否二叉树是平衡
- 15. 疑问关于函数检查树是否平衡?
- 16. 完整二叉树和平衡二叉树的区别
- 17. 使用递归进行二叉树平衡检查?
- 18. .NET Generic.Dictionary的实现是否使用平衡二叉树?
- 19. 平衡四叉树
- 20. 这个二叉树可以平衡吗?
- 21. 完美平衡二叉搜索树
- 22. 打印不平衡的二叉树
- 23. 使用foldr构建平衡二叉树
- 24. 如何平衡我的二叉树
- 25. 二叉搜索树(前平衡)
- 26. 函数重新平衡二叉搜索树
- 27. 展平二叉查找树
- 28. 检查一棵树是否是二叉搜索树
- 29. 迭代解决方案寻找树是否平衡
- 30. haskell检查平衡树
你试过了什么?你在寻找什么样的平衡点?它需要多高效? –
你的问题真的不能给任何人足够的信息给你一个答案。你有什么尝试?你在用什么语言?这不会是一个家庭作业的问题,是吗?... – Floris
@弗洛伊斯每当语言没有给出,我假设'语言不可知'算法' –