算法导论第十八章 B树】的更多相关文章

一.高级数据结构 本章以后到第21章(并查集)隶属于高级数据结构的内容.前面还留了两章:贪心算法和摊还分析,打算后面再来补充.之前的章节讨论的支持动态数据集上的操作,如查找.插入.删除等都是基于简单的线性表.链表和树等结构,本章以后的部分在原来更高的层次上来讨论这些操作,更高的层次意味着更复杂的结构,但更低的时间复杂度(包括摊还时间). B树是为磁盘存储还专门设计的平衡查找树.因为磁盘操作的速度要远远慢于内存,所以度量B树的性能,不仅要考虑动态集合操作消耗了多少计算时间,还要考虑这些操作执行了多…
18.1 B树的定义  18.2 B树的基本操作 与一棵二叉搜索树一样,可以在从树根到叶子这个单程向下过程中将一个新的关键字插入B树中.为了做到这一点,当沿着树向下查找新的关键字所属位置时,就分裂沿途遇到的每个满结点(包括叶节点本身).如分裂一个满的根,首先要让根成为一个新的空根结点的孩子.树的高度因此增加1,分裂是树长高的唯一途径. 18.3 从B树中删除关键字 我们设计的这个过程必须保证无论何时,结点x递归调用自身时,x中关键字个数至少为最小度数t.使得有时在递归下降至子结点之前,需要把一个…
前面讲解了平衡查找树中的2-3树以及其实现红黑树.2-3树种,一个节点最多有2个key,而红黑树则使用染色的方式来标识这两个key. 维基百科对B树的定义为“在计算机科学中,B树(B-tree)是一种树状数据结构,它能够存储数据.对其进行排序并允许以O(log n)的时间复杂度运行进行查找.顺序读取.插入和删除的数据结构.B树,概括来说是一个节点可以拥有多于2个子节点的二叉查找树.与自平衡二叉查找树不同,B-树为系统最优化大块数据的读和写操作.B-tree算法减少定位记录时所经历的中间过程,从而…
前面讲解了平衡查找树中的2-3树以及其实现红黑树.2-3树种,一个节点最多有2个key,而红黑树则使用染色的方式来标识这两个key. 维基百科对B树的定义为"在计算机科学中,B树(B-tree)是一种树状数据结构,它能够存储数据.对其进行排序并允许以O(log n)的时间复杂度运行进行查找.顺序读取.插入和删除的数据结构.B树,概括来说是一个节点可以拥有多于2个子节点的二叉查找树.与自平衡二叉查找树不同,B-树为系统最优化大块数据的读和写操作.B-tree算法减少定位记录时所经历的中间过程,从而…
上图: 这是二叉搜索树(也有说是查找树的)基本结构:如果y是x的左子树中的一个结点,那么y.key <= x.key(如a图中的6根结点大于它左子树的每一个结点 6 >= {2,5,5}),如果y是x的右子树中的一个结点,那么y.key >x.key 注:不同堆,堆是中间的结点最大或最小,而二叉搜索树是左中右的大小顺序,我们用这个特性来遍历二叉搜索树得到是他的顺序排列(中序遍历)#中在什么地方就叫什么遍历 如前序遍历:中左右  后序:左右中 如图a他的中序遍历为 2->5->…
http://www.cnblogs.com/yangecnu/p/Introduce-Binary-Search-Tree.html 前文介绍了符号表的两种实现,无序链表和有序数组,无序链表在插入的时候具有较高的灵活性,而有序数组在查找时具有较高的效率,本文介绍的二叉查找树(Binary Search Tree,BST)这一数据结构综合了以上两种数据结构的优点. 二叉查找树具有很高的灵活性,对其优化可以生成平衡二叉树,红黑树等高效的查找和插入数据结构,后文会一一介绍. 一 定义 二叉查找树(B…
B树 1. 简介 在之前我们学习了红黑树,今天再学习一种树--B树.它与红黑树有许多类似的地方,比如都是平衡搜索树,但它们在功能和结构上却有较大的差别. 从功能上看,B树是为磁盘或其他存储设备设计的,能够有效的降低磁盘的I/O操作数,因此我们经常看到有许多数据库系统使用B树或B树的变种来储存数据结构:从结构上看,B树的结点可以有很多孩子,从数个到数千个,这通常依赖于所使用的磁盘的单元特性. 如下图,给出了一棵简单的B树. 从图中我们可以发现,如果一个内部结点包含n个关键字,那么结点就有n+1个孩…
树的介绍部分摘取自博文二叉查找树(一).二叉查找树(二).二叉查找树. 1. 树的介绍 1.1 树的定义 树是一种数据结构,它是由n(n>=1)个有限节点组成一个具有层次关系的集合. 把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的.它具有以下的特点: (1) 每个节点有零个或多个子节点: (2) 没有父节点的节点称为根节点: (3) 每一个非根节点有且只有一个父节点: (4) 除了根节点外,每个子节点可以分为多个不相交的子树. 1.2 树的基本术语 若一个结点有子树,…
1. 概述 Trie树,又称字典树,单词查找树或者前缀树,是一种用于快速检索的多叉树结构,如英文字母的字典树是一个26叉树,数字的字典树是一个10叉树. Trie一词来自retrieve,发音为/tri:/ “tree”,也有人读为/traɪ/ “try”. Trie树可以利用字符串的公共前缀来节约存储空间.如下图所示,该trie树用10个节点保存了6个字符串pool.prize.preview.prepare.produce.progress 在该trie树中,字符串preview,prepa…
<Linux内核设计与实现>课本第十八章自学笔记 By20135203齐岳 通过打印来调试 printk()是内核提供的格式化打印函数,除了和C库提供的printf()函数功能相同外还有一些资深的特殊功能 健壮性 在任何时候内核的任何地方都能调用printk()函数,只有在终端还未初始化的时候不能调用. 在中断上下文和进程上下文中被调用 在任何持有锁时被调用 在多处理器上同时被调用,并且不必使用锁. 解决办法是提供一个变体函数early _ printk(),但这种办法在某些硬件体系结构上无法…