2018年9月28日
摘要: 红黑树 动机 Q: 在已经有了AVL之类的BBST,为什么还需要引入红黑树? A: 我们希望数据结构具有关联性,即相邻版本之间,比如说第一次插入,和第二次插入时,树的结构不能发生太大变化, 应该可以经过O(1)次数就可以变化完成。 对于AVL树来说,插入是满足这个条件的,删除却不满足这个条件。 红黑 阅读全文
posted @ 2018-09-28 19:09 patientcat 阅读(527) 评论(0) 推荐(0) 编辑
摘要: B树 概述 动机: B树实现高速I/O 640K如何"满足"任何实际需求了 源自比尔·盖茨的一个笑话 前提知识 1. 高速缓存 为什么高速缓存有效? 不同容量的存储器,访问速度差异悬殊,磁盘和内存访问速度的量级相差$ 10^5$ 如果将访问内存比喻为1秒,那么访问外存则相当于1天 因此我们需要尽量减 阅读全文
posted @ 2018-09-28 19:06 patientcat 阅读(503) 评论(0) 推荐(0) 编辑
摘要: 高级搜索树 伸展树 对于维护平衡因子,感觉很麻烦,希望抛弃掉平衡因子,使用更加潇洒的模式。 要求: 1. 对于伸展树来说,也不做过多掌握 2. 主要明白利用数据的局部性,我们可以实施的新策略 概述 背景知识补充: 数据局部性 刚被访问过得数据很快会被再次访问 因此这一次访问过的节点,极有可能再次被访 阅读全文
posted @ 2018-09-28 19:03 patientcat 阅读(318) 评论(0) 推荐(0) 编辑
摘要: 二叉搜索树(Binary Search Tree) BST 要求:AVL树是BBST的一个种类,继承自BST,对于AVL树,不做太多掌握要求 1. 四种旋转,旋转是BBST自平衡的基本,变换,主要掌握旋转的思想。 2. 3+4重构,重点明白为什么可以3+4重构,而不是使用旋转 3. 对于AVL插入和 阅读全文
posted @ 2018-09-28 19:00 patientcat 阅读(906) 评论(0) 推荐(1) 编辑
摘要: 图 术语 俩个要素 顶点集和边集。分别使用V和E来表示 邻接关系: 指的是俩个顶点之间的关系。 关联关系: 指的是顶点和边之间的关系。 极大顶点: 图如果再加一个顶点,图就不连通了。 有向图和无向图 主要研究有向图,有向图可以转化为无向图 路径 简单路径:路径中不含重复节点。 普通路径:路径中可能含 阅读全文
posted @ 2018-09-28 18:58 patientcat 阅读(1143) 评论(0) 推荐(0) 编辑
摘要: 树 树的一些结论 度: 一个节点的孩子数称为度。 一颗树的边数 = 节点数n 1 意义在于衡量算法复杂度时使用。 树的特性 路径(通路) + 环路 通路: a, b 之间通过节点连接成的路。 长度:所有边的数目(有些文献使用节点定义长度) 环路:通路的俩个节点彼此短路,即重合构成环路。eg. a b 阅读全文
posted @ 2018-09-28 18:57 patientcat 阅读(446) 评论(0) 推荐(0) 编辑
摘要: 队列的学习 队列的模拟 使用数组对循环队列进行模拟的时候,必须放弃一个位置。 关于模板类继承之后派生类使用基类接口,需要使用基类的作用域限定。 队列的底层,如果不考虑空间的话,使用vector比较好,否则使用双向链表,主要delete太耗时间。 队列的应用 RoundRobin轮盘机制 RoundR 阅读全文
posted @ 2018-09-28 18:56 patientcat 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 栈的学习 栈的应用场合 1. 逆序输出 输出次序与处理过程颠倒,递归深度和输出长度不易预知 不是很理解 实例:进制转换 大致思路:对于进制转换,我们一般使用的都是长除法,因此要保存每次得到的余数,但是最后算下来 新的进制的数,刚好和存储的时候是逆序的。因此利用栈输出即可。原因是栈是FiLo后进先出。 阅读全文
posted @ 2018-09-28 18:55 patientcat 阅读(669) 评论(0) 推荐(0) 编辑
摘要: 列表 stl中的列表实际上是双向列表 列表节点ADT | 成员 | 功能 | | | | | data | 数据域 | | pred | 直接前驱 | | succ | 直接后继 | | 接口 | 功能 | | | | | insertAsPred | 作为直接前驱插入 | | insertAsSu 阅读全文
posted @ 2018-09-28 18:54 patientcat 阅读(602) 评论(0) 推荐(0) 编辑
摘要: 向量 根据基本的概率论知识,要求样本随机,且元素需要足够大,来保证其分布。 实际过程中,插值查找往往使用在大规模下,中小规模使用二分查找或者顺序查找 简介 向量本身其是就是一个封装了的数组。或者说是抽象的数组。使我们在使用的时候不用在意数组的大小。 ADT 与成员 事先说明 Tips 这里主要注意语 阅读全文
posted @ 2018-09-28 18:52 patientcat 阅读(1039) 评论(0) 推荐(1) 编辑
摘要: 邓俊辉数据结构学习笔记 绪论 知识储备 1. 离散数学基础 2. 概率基础 如何评价一个算法 渐进分析:大O记号 问题:随着规模的增长,计算成本如何增长? 这里关系的是 的问题。 即当 n 2的时候 需执行的基本操作次数:T(n) = ? 需占用的存储单元数:S(n) = ? // 有时候,不考虑, 阅读全文
posted @ 2018-09-28 18:50 patientcat 阅读(462) 评论(0) 推荐(0) 编辑