
算法
michaelrun
这个作者很懒,什么都没留下…
展开
-
《算法导论》笔记--红黑树(一)
满足下面几个条件的二叉搜索树,称为红黑树:1. 任何一个节点都被着色――红色或是黑色。2. 根节点是黑色的。3. 所有的NIL节点都看成黑色(NIL节点是就是一个假想的或是无实在意义的节点,所有应该指向NULL的指针,都看成指向了NIL节点。包括叶节点的子节点指针或是根节点的父指针)。4. 如果一个节点是红色的,那么它的子节点一定是黑转载 2010-05-30 20:55:00 · 3227 阅读 · 0 评论 -
《算法导论》笔记--红黑树(二)
红黑树的节点删除 从红黑树上删除一个节点,可以先用普通二叉搜索树的方法,将节点从红黑树上删除掉,然后再将被破坏的红黑性质进行恢复。我们回忆一下普通二叉树的节点删除方法:Z指向需要删除的节点,Y指向实质结构上被删除的结点,如果Z节点只有一个子节点或没有子节点,那么Y就是指向Z指向的节点。如果Z节点有两个子节点,那么Y指向Z节点的后继节点(其实前趋也是一样的),而Z的后继节点绝对不可能有左转载 2010-05-30 21:51:00 · 1280 阅读 · 1 评论 -
《算法导论》笔记--优先级队列
优先级队列也是一种基础的数据结构,应用非常广泛,并且经常作为其它算法的一部分出现。优先级队列一般分最大优先级队列和最小优先级队列。这两种优先级队列只是为了适应不同场合的需要而进行区分实现,在算法上来讲没有什么本质的不同。因此下面只讲最大优先级队列,所记内容都同时对称地适用于最小优先级队列。 最大优先级队列,是这样的一种队列结构,它的内部存放着一系列的元素,每个元素都对应着一个最优级,最大优先转载 2010-05-30 22:12:00 · 1022 阅读 · 0 评论 -
红黑树的实现源码(第二次修订版)
我曾经写过两个两个红黑树的实现, 分别在:http://www.cppblog.com/converse/archive/2006/10/07/13413.htmlhttp://www.cppblog.com/converse/archive/2007/11/28/37430.html最近因为要给ccache加入红黑树的支持, 找出来曾经实现的代码作为参考, 这才发现原来的实现都是有问题的,也怪我转载 2010-05-30 12:09:00 · 513 阅读 · 0 评论 -
《算法导论》笔记--B树
B树是平衡树的一种,主要用于操作存储在磁盘等二级存储设备上的大量数据。相比起内存(主存)来说,磁盘操作的速度非常慢(慢几个数量级),所以涉及到存储在磁盘的数据的时候,尽量减少磁盘的读取和写入操作对于提高操作速度是非常重要的。B树就是针对这个特点进行设计以满足相应要求的。 B树的性质: •1. B树内的每一个节点x都具有以下字段: ◦当前存储在节点x中的关键字(key)个数n[x]。 ◦存储在x节点原创 2010-05-30 21:52:00 · 936 阅读 · 0 评论 -
SQLite Version3.3.6源代码文件结构
Version 3.3.6源代码文件结构 ——整理:hustcat 2009-2-19文件名称大小byte备注API部原创 2011-08-08 23:25:30 · 606 阅读 · 0 评论