二叉查找树以及相关的几个树
来源:互联网 发布:淘宝5金冠店铺是那个 编辑:程序博客网 时间:2024/05/16 14:06
写在前面
博客写着写着会突然感到一些沮丧,觉得自己写的不好,不能把AVL树或者红黑树这样的单个东西写的很透彻。虽然如此,自己还是打算写下去,一方面是写的虽然不成体系,但毕竟是总结了一些稍微有那么些用处的东西;另一方面,也是对自己的一个督促,希望自己伴随着博客内容的越来越多,也在真真实实的进步。
关于查找树
二叉查找树中节点(X)如果有孩子节点的话,那么:它的左孩子节点的关键字值小于X的关键字值;它的右孩子节点的关键字值大于X的关键字值。
由于二叉查找树仅有如上的限制条件,当我们把有序度高的一组值插入到树中时,有序度越高,那么构建的树的高度也就越高。由于,在二叉查找树中检索某个关键字值的时间是O(h),也就造成了检索时间越大。
为了避免这种情况的发生,故而就出现了AVL树、红黑树、SBT树等。
二叉查找树、AVL树、红黑树实现上的区别
当实现这三种树的时候,都要实现search、max、min、predecessor、successor、insert、delete 7种动态集合操作。
AVL树、红黑树于二叉查找树实现上的不同点就在insert、delete中的节点调整部分。对于AVL树来说,多的是旋转和调整节点高度值,对于红黑树来说,多的是旋转和调整节点的颜色值。AVL树兄弟节点的高度差不能大于2,红黑树要求是黑高度不能超出2倍,所以AVL树是具有更加严格的平衡效果,实现起来考虑的情况也要相对复杂。
熟悉了二叉查找树的7种操作后,最关键的就是要清楚树中节点的左旋转和右旋转。弄清楚旋转之后,就剩下按照不同的情况执行旋转、高度计算、重新着色操作了。
二叉查找树和红黑树写的最好的就是《算法导论》了,网上的写的再花哨也不足够好。
0 0
- 二叉查找树以及相关的几个树
- 二叉查找树的定义以及几个基本操作
- 二叉查找树相关
- 二叉树的几个相关算法
- java实现二叉查找树以及相关操作
- 数据结构:二叉查找树的相关操作
- 二叉查找树相关判断
- 二叉树的建立以及相关操作
- 二叉树以及相关的面试题
- 二叉查找树(1) - 查找以及插入
- 二叉树的相关操作(2)--各类分支查找
- 查找树(二叉树)的构建以及分层遍历
- 查找二叉树的基本操作以及层次遍历
- 二叉查找树的数据结构以及实现(JAVA)
- 二叉树的遍历、查找、插入以及删除
- 二叉树的递归创建,以及二叉查找树查找的建立 和遍历查找的比较
- 二叉查找树相关操作实现
- C语言 二叉查找树相关算法
- iOS UIView自带动画和核心动画
- 学习笔记
- 关于MySQL连接和多表更新的心得
- oracle中start with查询数据重复
- 两个JSP页面跳转传参数
- 二叉查找树以及相关的几个树
- FancyBox的ajax利用json形成gallery
- ActiveMQ 即时通讯服务 浅析
- ButterKnife的简单使用
- Sum It Up
- 选择Session还是Cookie
- NVARCHAR 和VARCHAR区别和使用
- java concurrent
- UILabel补充