码迷,mamicode.com
首页 >  
搜索关键字:完全二叉树    ( 970个结果
堆的基本知识
堆 是一种经过排序的完全二叉树,其中任一非终端节点的数据值均不大于(或不小于)其左孩子和右孩子节点的值。二叉堆 是一种特殊的堆,二叉堆是完全二元树(二叉树)或者是近似完全二元树(二叉树)。二叉堆有两种:最大堆和最小堆。最大堆 根结点的键值是所有堆结点键值中最大者,父结点的键值总是大于或等于任何一个子...
分类:其他好文   时间:2015-07-22 12:38:23    阅读次数:108
二叉树的存储表示与实现
二叉树的顺序存储 完全二叉树的存储可以按照从上到下,从左到右的顺序依次存储在一维数组中。完全二叉树的顺序存储如图所示:                 如果按照从上到下,从左到右的顺序把非完全二叉树也同样的编号,将结点依次存放在一维数组中,为了能够正确反映二叉树中结点之间的逻辑关系,需要在一维数组中将二叉树中不存在的结点位置空出。   顺序存储对于完全二叉树来说是...
分类:其他好文   时间:2015-07-20 23:53:19    阅读次数:383
决策树模型
这一节决策树其实是对前面的堆排序,快排等是最优的比较算法的证明, 首先说下《算法导论》上对决策树的定义:一棵决策树是一棵满二叉树(注意看下面解释),表示某排序算法作用于给定输入所做的所有比较,而控制结构,移动等都被忽略了。 注意:这里个人认为定义是错误的,决策树不是一棵满二叉树,连完全二叉树都不是。...
分类:其他好文   时间:2015-07-17 00:10:39    阅读次数:242
算法导论 第十二章:二叉查找树(Binary Search Trees)
二叉查找树具有如下性质:        x是二叉查找树中的一个节点,如果y是x左子树中的一个节点,则y.key ≤ x.key ; 如果 y 是 x 右子树中的一个节点,则 x.key ≥ y.key.         在二叉树上执行的基本操作的时间与树的高度成正比。当这棵树是完全二叉树时,这些操作的最坏情况运行时间为Θ(lgn);如果该树是含n个节点的线性链,则这些操作的最坏情况的运行时间为...
分类:编程语言   时间:2015-07-16 19:57:41    阅读次数:157
赫夫曼树
一、前言 赫夫曼树,又称最优树,是一类带权路径长度最短的树。二、基础知识 1、路径长度:从树中一个结点到另一个结点之间的分支构成这两个结点之间的路径,路径上分支数目称为路径长度。 2、树的路径长度:是从树根到每一个结点的路径长度之和。完全二叉树就是路径长度最短的二叉树。 3、树带权路径长度:...
分类:其他好文   时间:2015-07-16 08:24:49    阅读次数:201
codeforces 558D Guess Your Way Out! II 规律
题目链接 题意: 给出n和q 表示有一棵深度为n的完全二叉树,叶子节点中有恰好一个点是出口 主角从根往下走,但不知道出口在哪里,但主角会获得q个提示。  像这样标号 q个提示 格式: deep [l, r] ok  表示 深度为deep 时, 出口(可能在) (一定不在)[l,r]区间  ok=1表示 是可能在 ok=0一定不在 目标: 若根据...
分类:其他好文   时间:2015-07-15 19:18:35    阅读次数:143
计算完全二叉树所有节点数
今天在leetcode,遇见一个题目,计算一个完全二叉树所有的节点数。这里分享一下心得。 首先,需要完全掌握什么是完全二叉树? 我觉得对于完全二叉树的概念中,有一点需要注意。完全二叉树:除最后一层外,每一层上的节点数均达到最大值;在最后一层上只缺少右边的若干结点。最后一层的结点一定是向左靠。...
分类:其他好文   时间:2015-07-14 22:22:12    阅读次数:324
大顶堆(c++实现)
【大顶堆的性质】大顶堆是一棵完全二叉树,且树中的每个节点的值都不小于它的孩子节点的值。我们可以用一个heap数组来表示它。【大顶堆的插入、删除】 大顶堆的插入:首先初始化插入位置为最后,然后从下往上调整堆(调整插入元素的位置)。在调整过程中,若当前节点的父亲节点小于插入元素,则将其父亲节点的值赋给当前节点,父亲节点作为当前节点,依此继续;否则当前节点即为插入位置。 大顶堆的删除:删除根,初始化最后一...
分类:编程语言   时间:2015-07-14 17:58:44    阅读次数:330
堆排序 Heap Sort
堆排序虽然叫heap sort,但是和内存上的那个heap并没有实际关系。算法上,堆排序一般使用数组的形式来实现,即binary heap。我们可以将堆排序所使用的堆int[] heap视为一个完全二叉树,即,除非最后一层右侧有空结点,其他都为满结点。对于任意heap[i]有如下一些性质:1. i从...
分类:编程语言   时间:2015-07-14 15:31:31    阅读次数:147
基本数据结构之堆
堆的定义堆是一个完全二叉树或者近似的完全二叉树堆的性质 父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。 每个结点的左子树和右子树都是一个二叉堆(都是最大堆或最小堆)。堆的存储一般都用数组来表示堆,i结点的父结点下标就为(i – 1) / 2。它的左右子结点下标分别为2 * i + 1和2 * i + 2 堆的特点插入元素和弹出堆顶元素的时间复杂度lg(n) 判断序列是不是堆根据性质判...
分类:其他好文   时间:2015-07-13 22:28:39    阅读次数:130
970条   上一页 1 ... 72 73 74 75 76 ... 97 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!