伸展树学习小结
来源:互联网 发布:android 无法修改mac 编辑:程序博客网 时间:2024/05/29 03:14
伸展树实际上就是一种二叉搜索树,只不过它采用了一个理念:刚刚访问过的数据很可能再次被访问,于是,为了在概率上提高多次查找效率,它采用了一种简单粗暴的方法,即把刚刚访问过的节点移动到根节点的位置。这与我们以前学过的平衡二叉树有异曲同工之妙,都是为了保证效率而对树结构进行重构。下面我们看一下这种重构是怎么实现的。
假设要查找的节点是X,其父节点为Y(如果存在),父节点的父节点为Z(如果存在)
1. X的父节点Y为根节点。以X为轴,顺时针旋转Y,X的右孩子(如果存在)变为Y的左孩子,Y变为X的右孩子,其余不变。
2. X、Y、Z呈“一”字形结构。以X为轴,顺时针旋转Y,Z,Y的右孩子变为Z的左孩子,X的右孩子变为Y的左孩子,Y变为X的右孩子,Z变为Y的右孩子。
3. X、Y、Z呈“之”字形结构(都这么叫,但我觉得一点也不像。。。)。这种形式需要先转换为“一”字形结构,再按“一”字结构转换。首先逆时针旋转XY这条边,使Y成为X的左孩子,X的左孩子为Y的右孩子,X为Z的左孩子,再按照“一”字形转换即可。
0 0
- 伸展树学习小结
- 伸展树学习小结
- 伸展树(Splay tree)学习小结
- 伸展树(Splay tree)学习小结
- 伸展树小结
- splay 伸展树小结
- splay tree(伸展树)学习小结(一)
- 伸展树(Splay tree)学习小结 ---by---cxlove
- 伸展树(Splay Tree)小结
- 学习笔记----伸展树
- 伸展树学习
- 伸展树模板小结(Splay Tree)
- 【伸展树splay学习小记】
- 伸展树Splay学习笔记
- 伸展树:双层伸展
- 树学习 ---------伸展树(splay Tree)
- 大白书伸展树学习笔记
- 学习总结:Splay Tree 伸展树
- ubuntu 配置安装vsftpd
- Android Audio System 之一:AudioTrack如何与AudioFlinger交换音频数据
- OpenWrt 自学笔记(4)------交叉编译SQLite3
- Objective-C和C++混编的要点
- USACO-Section 2.3 Money Systems(DP)
- 伸展树学习小结
- object-c 混编 调用C,C++接口
- JBossWeb/Tomcat 初始化连接器和处理 Http 请求过程
- HDU 2048 2049 (错排,排列组合)
- 读书笔记 JavaScript 高级程序设计(第三版)-- 第1章
- Java Request 获取域名
- 【Java并发编程】深入分析Thread(七)
- 质数的无穷性——从素数到数论
- Java线程间通过共享对象通信