随笔分类 - 算法
摘要:文章图片来自邓俊辉老师课件 先提几个问题去思考学习本文 : 红黑树和2-4树(B-Tree)很像,那么它存在的动机又是什么呢 插入和删除操作的逻辑又是怎么样的,时间和空间复杂度可以达到怎么样 和 AVL 对象有什么区别呢 概述 定义 我们可以看到红黑树有4条重要的定义,这4条定义保证了这个平衡树。下面我们看一下...
阅读全文
摘要:文章图片代码来自邓俊辉老师的课件 概述 上图就是 B-Tree 的结构,可以看到这棵树和二叉树有点不同---“又矮又肥”。同时子节点可以有若干个小的子节点构成。那么这样一棵树又有什么作用呢? 动机 我们知道电脑的访问内存比访问外的存I/O操作快了,但是内存的容量大小又只有那么一点点(相对于外存),所以计算机访问的过程常常使用高速缓存。使用高速缓存也...
阅读全文
摘要:文章图片和代码来自邓俊辉老师课件 概述 伸展树(Splay Tree),也叫分裂树,是一种二叉排序树,它能在O(log n)内完成插入、查找和删除操作。它由丹尼尔·斯立特Daniel Sleator 和 罗伯特·恩卓·塔扬Robert Endre Tarjan 在1985年发明的。(出处百度百科) 它的操作就是将访问到的元素放在根节点处。主要的操作就是 ...
阅读全文
摘要:文章是对邓俊辉老师数据结构教程的总结,部分图片资料来自邓俊辉老师的教学PPT 建议阅读前先阅读参考文章的第二,三文章,总结得非常好! 文章部分代码和图片来自参考文章的第二,三文章!! 阅读前提几个问题吧 ,帮助思考 为什么需要平衡二叉树 AVL 需要两次旋转的操作为什么不直接分解为左旋和右旋,还要LR RL 呢 AVL 有什么局限性 二叉查找...
阅读全文