ZKX's LAB

avl平衡树的调整 二叉树如何转换成平衡二叉树

2020-07-25知识9

具有5层结点的平衡二叉树至少有多少个结点 至少有12个结点。分析过程如下:因为根结点层次为1,则高度为h的平衡二叉树最少有F(h+2)-1个结点;其中F 为Fibonacci序列1,1,2,3,5,8,13,21,.;Fibonacci数列种,1是根节点,F(n-1)是左子树的节点数量,F(n-2)是右子数的节点数量;易知F(1)=1,F(2)=2,F(3)=4;F(5)=F(4)+F(3)+1=2*F(3)+F(2)+2;因为F(2)=2,F(3)=4;故F(5)=2*F(3)+F(2)+2=2*4+2+2=12;即具有5层结点的平衡二叉树至少有12个结点。此题利用了平衡二叉树的性质解题。扩展资料:平衡二叉树的性质:1、它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树;2、常用算法有红黑树、AVL、Treap、伸展树等。在平衡二叉搜索树中,其高度一般都良好地维持在O(log(n)),大大降低了操作的时间复杂度;3、若根结点层次为1,则高度为h的平衡二叉树最少有F(h+2)-1个结点,其中F 为Fibonacci序列1,1,2,3,5,8,13,21,.;4、最小二叉平衡树的节点总数的公式如下 F(n)=F(n-1)+F(n-2)+1,可以参考Fibonacci(斐波那契)数列,1是根节点,F(n-1)是左子树的节点数量,F(n-2)是右子树的节点数量。参考资料来源:—平衡二叉树数据结构平衡二叉树avl树问题 树和二叉树:二叉树是树的一种,还可以有三叉树、四叉树、…,以及混合叉树。不过一般只讨论二叉树,这是最典型、最有用的数据结构。Huffman树是一类带权路径长度最短的二叉树,在哈夫曼树中,权值越大的结点离根结点越近。假设有n个权值,则构造出的哈夫曼树有n个叶子结点。n个权值分别设为 w1、w2、…、wn,则哈夫曼树的构造规则为:(1)将w1、w2、…,wn看成是有n 棵树的森林(每棵树仅有一个结点);(2)在森林中选出两个根结点的权值最小的树合并,作为一棵新树的左、右子树,且新树的根结点权值为其左、右子树根结点权值之和;(3)从森林中删除选取的两棵树,并将新树加入森林;(4)重复(2)、(3)步,直到森林中只剩一棵树为止,该树即为所求得的哈夫曼树。Huffman树编码:以根为出发点,依次向下走到各个叶子结点为止。往下走时,选择走哈夫曼树的左分支生成0,走右分支则生成代码1,根结点到叶子结点路径上的0、1序列即为相应字符的编码。这样讲可能有点抽象,你可以找本书,结合书上的图来看会更清楚一点。AVL树,红黑树,B树,B+树,Trie树都分别应用在哪些现实场景中? AVL树:最早的平衡二叉树之一。应用相对其他数据结构比较少。windows对进程地址空间的管理用到了AVL树。

#平衡二叉树#avl#叶子结点#平衡树#二叉排序树

随机阅读

qrcode
访问手机版