码迷,mamicode.com
首页 >  
搜索关键字:满二叉树 完全二叉树    ( 1098个结果
二叉树的顺序存储结构
/* * 2015年4月19日 16:44:48 * 目的:用顺序存储结构来表示二叉树 * 二叉树比较难,所以更应该同过程序来好好理解二叉树的概念。 * 顺序存储是顺序储存在数组中的,以完全二叉树的形式,不存在的结点 * 在数组中用0表示。当二叉树是完全二叉树时,效率高而且简单 * 但是当不是完全二叉树时,会出现内存浪费的情况,这个程序仅仅 * 用来说明顺序结构怎么存储二叉树的,而且...
分类:其他好文   时间:2015-04-19 21:28:15    阅读次数:151
完全二叉树计算叶子结点数
1.首先看下完全二叉树的定义: 一棵深度为k,且有个节点称之为满二叉树;深度为k,有n个节点的二叉树,当且仅当其每一个节点都与深度为k的满二叉树中,序号为1至n的节点对应时,称之为完全二叉树。2.一条规则: 对任何一棵二叉树T,如果其终端结点数为,度为2的结点数为,则。 推导过程:n0是度为0的结点...
分类:其他好文   时间:2015-04-19 14:31:18    阅读次数:131
堆排序
堆排序,顾名思义利用堆的性质进行排序。堆都有哪些性质,比如:一堆沙子、一堆泥土二叉堆实际上是一课完全二叉树,同时满足:父结点的键值总是大于或等于(小于或等于)任何一个子结点的键值当父结点的键值总是大于或等于任何一个子结点的键值时称为 最大堆当父结点的键值总是小于或等于任何一个子结点的键值时称为 最小...
分类:编程语言   时间:2015-04-18 17:37:59    阅读次数:145
挑战程序设计竞赛 二叉堆(优先队列)的实现
几个概念: 完全二叉树:是指除叶子节点那层外,叶子节点以上的第k层都含有2k2^k个节点而且叶子节那层的节点都靠左方。 满二叉树:与完全二叉树先比,多了连叶子节点也要全满的限制条件。 堆的代码实现(数组实现):int heap[10000], sz = 0;void push(int x) { //向堆里面增加元素X int i = sz++, p; while(i > 0)...
分类:其他好文   时间:2015-04-17 22:22:15    阅读次数:202
Heap sort
堆排序 堆排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种。可以利用数组的特点快速定位指定索引的元素。 堆分为大根堆和小根堆,是完全二叉树。大根堆的要求是每个节点的值都不大于其父节点的值,即A[PARENT[i]] >= A[i]。在数组的非降序排序中,需要使用的就是大根堆,因为根据大根堆的要求可知,最大的值一定在堆顶。 维护堆的性质 M...
分类:其他好文   时间:2015-04-17 11:37:45    阅读次数:138
堆排序
排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种。可以利用数组的特点快速定位指定索引的元素。堆分为大根堆和小根堆,是完全二叉树。大根堆的要求是每个节点的值都不大于其父节点的值,即A[PARENT[i]] >= A[i]。在数组的非降序排序中,需要使用的...
分类:编程语言   时间:2015-04-16 21:15:41    阅读次数:124
[转][算法天天练]堆与堆排序
堆排序与快速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法。学习堆排序前,先讲解下什么是数据结构中的二叉堆。二叉堆的定义二叉堆是完全二叉树或者是近似完全二叉树。二叉堆满足二个特性:1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。2.每个结点的左子树和右子树都...
分类:编程语言   时间:2015-04-16 13:58:35    阅读次数:170
堆的概念及实现
1.概述: 堆的概念:堆是一种完全二叉树,其高度为log(n),可以用一维数组来实现。堆中存储的数据是局部有序的。可分为两种堆:最大顶堆和最小顶堆。 最大顶堆:任意一个结点的值都大于等于其任意一个子结点的值。 最小顶堆:任意一个结点的值都小于等于其任意一个子结点的值。可以发现,堆的罗辑结构是树...
分类:其他好文   时间:2015-04-09 16:51:25    阅读次数:145
算法导论--第六章、堆排序
1. 堆的概念堆的数据结构是一种数组对象;堆可以视作为一颗完全二叉树(其中,树的每一层都填满,最后一层可能除外);树中每个节点与数组中存放该节点值的元素对应;堆可以划分为两类:a) 最大堆:除了根节点,有A[parent(i)] >= A[i],最大元素即根节点;b) 最小堆:除了根节点,有A[pa...
分类:编程语言   时间:2015-04-08 12:22:57    阅读次数:120
Java 实现堆排序
堆堆排序和合并排序一样,是一种时间复杂度为O(nlgn)的算法,同时和插入排序一样,是一种就地排序算法(不需要额外的存储空间)。堆排序需要用到一种被称为最大堆的数据结构,与java或者lisp的gc不一样,这里的堆是一种数据结构,他可以被视为一种完全二叉树,即树里面除了最后一层其他层都是填满的。也正...
分类:编程语言   时间:2015-04-05 23:20:28    阅读次数:237
1098条   上一页 1 ... 89 90 91 92 93 ... 110 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!