ZKX's LAB

平衡二叉树删除节点后怎么调整 平衡二叉树节点的删除得到的平衡二叉树唯一吗?

2020-07-21知识6

具有5层结点的平衡二叉树至少有多少个结点 如果根结点层次为1,则高度为h的平衡二叉树最少有F(h+2)-1个结点其中F 为Fibonacci序列1,1,2,3,5,8,13,21,.因此5层最少有F(7)-1=13-1=12个结点平衡二叉树节点的删除得到的平衡二叉树唯一吗? 某结点的平衡因子原来不为0,并且删除造成其较矮的子树被更变矮一层,于是该结点发生不平衡当其原来的较高子树(该子树并未被变矮)的平衡因子为0,则可以执行一个单旋转(或者双旋转)来恢复结点的平衡因此此时原则上的结果并不唯一但是不过如果要写程序,肯定是用单旋转而不是双旋转,相比执行的操作要少一些,运行结果自然也唯一了在平衡二叉树中,插入一个节点后引起不平衡 你是对的,应该是A的左子树根的右子树上出现的不平衡,所以是LR在平衡二叉树上删除一个结点后仍使其平衡,最坏情况下需要旋转多少次? 设树的高度为h,则最坏时需要从最深分支的倒数第3层开始一直旋转到根,不论是单旋转还是双旋转都算旋转一次,就是h-2次在平衡二叉树中插入一个结点后造成了不平衡,设最低的不平衡结点为A 根据题意,这棵树应该是这样D D\\/\\A E 插入C A EB B\\C这时不平衡点为A,无左孩子,平衡因子0-1=-1所以应该用LR左右型来调整。在平衡二叉树中,插入一个节点后引起不平衡,设离插入节点最近的不平衡点是A,并且已知A的左右孩子的平衡节点 因为A结点右子树的平衡因子为0,因此,只能是在左子树上插入的结点,也就是说A的左子树被加高如果你的平衡因子的定义是左子树的高度-右子树的高度,于是A的平衡因子一定是+。

#平衡二叉树

随机阅读

qrcode
访问手机版