摘要: 红黑树,顾名思义,就是把平衡二叉搜索树的节点赋予两种颜色,通过定义几条规则,达到约束的目的。红黑树可以保证,每次插入删除操作后的重平衡,全树拓扑结构的改变仅需要常数个节点,最坏情况下需要对logn个节点重染色,但是就分摊意义仍然为O(1)。 需要满足的条件: (1)树根始终为黑色 (2)外部节点均为 阅读全文
posted @ 2017-08-03 17:58 luStar 阅读(502) 评论(0) 推荐(0) 编辑
摘要: B-树(是B-树不是B减树)的使用,是为了平衡的容量硬盘与较小的内存、以及不同存储器层次之间I/O操作速度的巨大差异。分级存储是行之有效的方法,借助高效的调度方法,可以将内存的“高速度”和外存的“大容量”结合起来。内存的访问速度,与硬盘的访问速度相差几个数量级,因此最好能把一部分经常用到的数据放在内 阅读全文
posted @ 2017-08-02 09:07 luStar 阅读(390) 评论(1) 推荐(0) 编辑
摘要: 伸展树同样是一种平衡二叉搜索树,它的优势在于,在足够长的序列中能保证分摊意义上的高效率,同时也无需记录高度或者平衡因子等信息。 伸展树的高效前提是局部性:刚刚被访问到的数据,可能在短时间内被再次访问;将被访问的下一元素,可能就在不久之前刚刚访问过的元素的附近。因此,伸展树的策略,就是把刚刚访问到的节 阅读全文
posted @ 2017-08-01 11:11 luStar 阅读(476) 评论(0) 推荐(0) 编辑
摘要: AVL树是一种平衡二叉搜索树,在渐进意义下,可以保证树的高度为logn,查找、插入和删除操作均可以在O(logn)时间内完成。AVL树的名字来源,是提出它的人0 0 引入平衡因子的概念,任一节点的平衡因子定义为其左右子树的高度差。 AVL树的限定,是任何一个节点的平衡因子绝对值不大于1。可以通过继承 阅读全文
posted @ 2017-07-26 23:39 luStar 阅读(458) 评论(0) 推荐(0) 编辑
摘要: 前面写过了向量和链表的结构,前者静态性能好而动态性能差,后者则相反。考虑改进树的结构,得到动态和静态性能都让人满意的数据结构,特别是在查找以及插入删除操作上具有优势。 查找或搜索(search):从一组数据对象中找出符合条件者的操作。把数据对象,定义为词条的形式(Entry),词条的形式为关键码-值 阅读全文
posted @ 2017-07-23 16:56 luStar 阅读(585) 评论(0) 推荐(0) 编辑
摘要: 当用图结构来表示通信、交通等网络,权重代表距离或者成本,寻找最短路径就成为了一个重要的任务。 给定带权网络G=(V;E),源点s,对于其他所有顶点v,寻找s到v的最短路径,连接成一颗最短路径树。可以证明,最短路径的任一前缀也是最短路径。 这一性质,可以理解为,对于一颗最短路径树,按到起点的距离排序, 阅读全文
posted @ 2017-07-22 20:02 luStar 阅读(2341) 评论(0) 推荐(0) 编辑
摘要: 上一篇博客里面提到了优先级搜索(priority first search),单独拿出来写一篇,因为优先级搜索可以适用大部分图搜算算法。所谓优先级搜索,是在图的遍历过程中,每次迭代都更新图中某些点或者是边的优先级,随着算法的不断推进调整,每次选取顶点或者边中优先级最高的那个元素进行访问。按照这种思想 阅读全文
posted @ 2017-07-21 11:22 luStar 阅读(970) 评论(0) 推荐(0) 编辑
摘要: 与其他数据结构一样,图也需要进行遍历操作,来访问各个数据点,以及后续对顶点和边进行操作。相对于树来说,图的结构更为复杂。 图的遍历,可以理解为将非线性结构转化为半线性结构的过程。我们知道,树就是一种半线性结构,经遍历而确定的边类型中,最为重要的类型就是树边,所有的树边与顶点一起构成了原始图的一颗支撑 阅读全文
posted @ 2017-07-20 18:28 luStar 阅读(3011) 评论(0) 推荐(0) 编辑
摘要: 图是一种很常见的结构,日常生活中的许多东西都可以视为一个图结构,比如各个公交站点以及他们之间的通路;互联网中联结于IP节点之间的路由等。二叉树也可以认为是一种图,但二元关系仅限于父子关系。一般性的二元关系,属于非线性结构,图结构中的算法,也大多通过像二叉树中的方法一样,通过某种方式得到元素之间的次序 阅读全文
posted @ 2017-07-20 15:39 luStar 阅读(339) 评论(0) 推荐(0) 编辑
摘要: 前面学过的数据结构,包括向量、链表、栈、队列,从物理上或者逻辑上来说,存在一定的前后次序,并且前驱和后继是唯一的,因此称之为线性结构。然而,向量的插入和删除操作、链表的循秩访问等操作,复杂度都非常高。树的结构,可以把两种结构的优势结合起来。 与前两种结构不同,树不存在天然的直接后继或者直接前驱关系, 阅读全文
posted @ 2017-07-08 23:45 luStar 阅读(6250) 评论(0) 推荐(1) 编辑