码迷,mamicode.com
首页 >  
搜索关键字:二叉树 层序遍历    ( 10966个结果
算法5-5:线段交叉问题
问题 给定一系列线段,每条线段可以是水平或者竖直。求相交的线段 解决 算法的基本思想是先将线段以x坐标进行排序。做一条扫描线,从左往右扫描,也就是下图中的红线。 当进入一条水平的线时,记录该线段的y坐标。 当走出水平线时,从二叉查找树中删除该线段的y坐标。 ...
分类:其他好文   时间:2014-06-19 12:56:29    阅读次数:305
算法5-1:平衡查找树之二三树
平衡查找树的目标是实现查找、插入、删除操作在最坏情况下的复杂度均为logN。 本节将介绍二三查找树。 二三树中有两种节点: 二节点对应一个键,有两个子节点 三节点对应两个键,有三个子节点 二三查找树非常平衡,每个空节点到根节点的距离都是一样的 。 查找操作 在二三树中查找一个键的时候有以下...
分类:其他好文   时间:2014-06-19 11:32:21    阅读次数:157
栈的应用--计算字符串表达式
计算机的本质工作就是做数学运算,那计算机可以读入字符串"1+2+3+4+5+6+7"并计算值吗? 答案是肯定的。 这里我基本实现了个位数的加减乘除,当然这个算法最简单的解决方式是采用二叉树(后面会实现~),这里作出了栈的实现方式。 首先引入两个概念: 中缀表达式和后缀表达式 1,在生活中我们通常书写1+1的时候都会写成1+1,废话~,这就是中缀表达式,更符合人们的思维习惯与想法。 2,所谓后缀表达式就是将运算符写在操作数的后面,这样更符合计算机的思维。...
分类:其他好文   时间:2014-06-19 11:05:41    阅读次数:364
算法5-2:红黑树
红黑树就是将二三树表示成二叉树的形式,极大地简化了算法。 红黑树的基本思想就是将二三树中的三节点表示成两个二节点,而这两个二节点之间使用红色的连接,普通连接使用黑色的连接。 红黑树中的每个节点都有以下性质: 没有一个节点同时拥有两个红连接 每个空节点到根节点路径上黑色连接的数量都是相同的 红连接只会出现在左边 下图展示...
分类:其他好文   时间:2014-06-16 11:53:53    阅读次数:164
算法5-3:B树
我们知道硬盘的读取速度是很慢的,那么如何实现文件系统才能让计算机更加高效呢?这时候就要引入B树的概念了。B树是平衡二叉树的推广形式,它的每个节点可以有很多的子节点。子节点的数量取决于扇区的大小。因为硬盘读取一个扇区的开销是最节省时间的。 下图展示了B树的样子,每个节点可以有多个子节点。 平衡树的应用 红黑树有着广泛的应用 ...
分类:其他好文   时间:2014-06-16 11:52:50    阅读次数:146
算法5-4:1d范围查找
有一个整数集合,求所有介于x到y之间的所有整数 实现方法 非顺序数组:复杂度是N,比较慢 顺序数组:查找操作的复杂度是lgN,插入操作的复杂度是N 二叉查找树:复杂度是logN,比较快 代码 下面这段代码用于统计lo到hi之间的整数个数 public int count(Key lo, Key hi) { i...
分类:其他好文   时间:2014-06-16 11:51:47    阅读次数:194
平衡二叉树
平衡二叉树又称AVL树。它或者是颗空树,或者是具有下列性质的二叉树:它的左子树和右子树都是平衡二叉树,且左子树和右子树的深度之差的绝对值不超过1。若将二叉树节点的平衡因子BF定义为该节点的左子树的深度减去它的右子树的深度,则平衡二叉树上全部节点的平衡因子仅仅可能为-1,0,1.仅仅要二叉树上有一个节...
分类:其他好文   时间:2014-06-15 22:39:42    阅读次数:237
算法:由后序遍历和中序遍历求前序遍历
假设一棵二叉树的后序遍历序列为 DGJHEBIFCA ,中序遍历序列为 DBGEHJACIF ,求前序遍历。   整体思路是这样的,由后序遍历找到每个节点,然后由中序遍历判断左右子树,将整个二叉树还原后写出前序遍历。 后序遍历的顺序知道,最后一个A是二叉树的根节点, 然后把中序遍历从A分成两段,A左边的是左子树,A右边的是右子树, 结果如下   ...
分类:其他好文   时间:2014-06-15 17:19:24    阅读次数:251
LeetCode——Maximum Depth of Binary Tree
Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node. 此题和求二叉树的最短路径几乎一模一样。 public int...
分类:其他好文   时间:2014-06-15 16:36:40    阅读次数:209
【啊哈!算法】算法11:堆——神奇的优先队列(上)
堆是什么?是一种特殊的完全二叉树,就像下面这棵树一样。         有没有发现这棵二叉树有一个特点,就是所有父结点都比子结点要小(注意:圆圈里面的数是值,圆圈上面的数是这个结点的编号,此规定仅适用于本节)。符合这样特点的完全二叉树我们称为最小堆。反之,如果所有父结点都比子结点要大,这样的完全二叉树称为最大堆。那这一特性究竟有什么用呢?         假如有14个数分别是9...
分类:其他好文   时间:2014-06-15 08:03:16    阅读次数:223
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!