为了账号安全,请及时绑定邮箱和手机立即绑定

【数据结构:高级篇】为什么BST可以转换成BBST?

BST(Binary Search Tree)二叉搜索树

BBST (Balance Binary Search Tree) 平衡二叉搜索树

1,首先看一下什么是BST?

直观上看,左边的节点小于右边的节点,就是BST,定义就是任意节点均不大于其右子树中的节点,不小于其左子树中的节点

图片

2,什么是BBST平衡二叉树?

N个节点构成的二叉树,树高为log2N,称为理想平衡

N个节点构成的二叉树,树高渐进地接近log2N,称为适度平衡

适度平衡的BST称为BBST(通俗讲,就是左右子树差值不要超过1)

3,两棵结构不同的树,但中序遍历的结果相同,这就是BST转换成BBST的基础。(旋转的理论依据)

图片

4,两棵结构不同的树,但中序遍历的结果相同,这个歧义性带来的好处和坏处?

中序遍历的歧义性坏处:中序遍历的歧义性,在中缀表达式的求值计算,就不得不想办法,辨析不同操作符之间的优先级。

对于BST 中序遍历的歧义性,是必不可少的。因为它能实现不同的树形结构,相同的中序遍历顺序。这是等价变化的前提。

**歧义性带来的好处等价Bst:**对于任意的bst,它们的中序遍历相同,但结构不同,称它们为等价的bst。

等价bst之间的关系和转换方式:左旋,右旋

上下可变:祖先和孙子节点可换位置。

左右不乱:中序遍历不能乱,左右孩子不能乱。

左旋:
图片描述

右旋:
图片描述

原文链接:https://mp.weixin.qq.com/s/hIoBvnSbhduMNuU2jUGZyg
作者:一起写程序

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
33
获赞与收藏
206

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消