• 回答数

    5

  • 浏览数

    135

束缚的漂流瓶
首页 > 英语培训 > 平衡二叉树英文

5个回答 默认排序
  • 默认排序
  • 按时间排序

无敌小天兵

已采纳

这么多,别人给你上半年课比较好;

平衡二叉树英文

307 评论(10)

唐尼小姐

参考书答案给的是A,我也在看这道题!(转:额理论上来说所有数据结构都支持子程序的调用。。。这个题的意思应该是子程序调用的时候能看成什么样的数据结构。严格来说是栈——因为递归调用子程序的时候就是先入后出的而且是线性的。虽然子程序也可以这样调用f[i]=f[i-1]+f[i-1]看起来像是树,但是实际上还是深度优先遍历一棵树,本质上是个栈。所以说这个题的题意不清。如果说“能够使用子程序调用的数据结构”就是全选,如果是“子程序调用的时候能看成什么样的数据结构“就是栈。)

253 评论(15)

原来我在这里8

平衡二叉树(AVL)

那对图 1 进行下改造,把数据重新节点重新连接下,图 2 如下:

图 2 可以看到以下特性:

1. 所有左子树的节点都小于其对应的父节点(4,5,6)<(7);(4)<(5);(8)< (9);

2. 所有右子树上的节点都大于其对应的父节点(8,9,10)>(7);(6)>(5);(10)>(9);

3. 每个节点的平衡因子差值绝对值 <=1;

4. 每个节点都符合以上三个特征。

满足这样条件的树叫平衡二叉树(AVL)树。

问:那再次查找节点 5,需要遍历多少次呢?

由于数据是按照顺序组织的,那查找起来非常快,从上往下找:7-5,只需要在左子树上查找,也就是遍历 2 次就找到了 5。假设要找到叶子节点 10,只需要在右子树上查找,那也最多需要 3 次,7-9-10。也就说 AVL 树在查找方面性能很好,最坏的情况是找到一个节点需要消耗的次数也就是树的层数, 复杂度为 O(logN)

如果节点非常多呢?假设现在有 31 个节点,用 AVL 树表示如图 3:

图 3 是一棵高度为 4 的 AVL 树,有 5 层共 31 个节点,橙色是 ROOT 节点,蓝色是叶子节点。对 AVL 树的查找来看起来已经很完美了,能不能再优化下?比如,能否把这个节点里存放的 KEY 增加?能否减少树的总层数?那减少纵深只能从横向来想办法,这时候可以考虑用多叉树。

189 评论(15)

巫毒小子

它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。常用算法有红黑树、AVL、Treap、伸展树等。在平衡二叉搜索树中,我们可以看到,其高度一般都良好地维持在O(log2n),大大降低了操作的时间复杂度。

233 评论(13)

曼妙樱花

平衡树:平衡二叉树

219 评论(11)

相关问答