码迷,mamicode.com
首页 >  
搜索关键字:满二叉树 完全二叉树    ( 1098个结果
堆的基础知识
堆堆的基本性质堆也可以说是一个完全二叉树,就是除了最底层的,其它层是满的,既然我们可以用完全二叉树来表示一个堆,那么我们这里就采用数组结构的二叉树来阐述堆的性质。 假设在这里我们用数组A表示堆,A[i]表示堆里面的第i个元素,于是我们通过二叉树的性质可知: - PARENT(i) = i/2 - LEFTCHILD(i) = 2*i - RIGHTCHILD(i) = 2*i+1就如下图表现...
分类:其他好文   时间:2015-05-05 22:03:55    阅读次数:250
(高效率排序算法三)堆排序
一.堆的介绍        堆有如下特点的二叉树:           1.他是完全的二叉树。也就是说,除了树的最后一层布需要时满的,其他的每一层从左到右都是满的.(如下图的完全二叉树跟不完全二叉树)                        2.它常常用一个数组在实现。(如下图显示了堆它与数组之间的关系。堆在存储器中的表示是数组;堆只是概念上的表示。注意树是完全二叉树,...
分类:编程语言   时间:2015-05-05 21:46:49    阅读次数:195
二叉树的先序遍历(递归方式)详解
/* * 时间:2015年5月4日09:58:21 * 目的:实现二叉树的先序遍历递归。 * 总结和思考!二叉树一般使用链式存储结构 * 如果使用顺序存储方式,除非二叉树是完全二叉树或者满二叉树 * 否则会浪费很多内存空间! */ # include typedef struct Node{ char data; //数据元素 Node *LChild; //左孩子节点 ...
分类:其他好文   时间:2015-05-04 12:02:43    阅读次数:379
数据结构 - 二叉树的存储结构
顺序存储结构二叉树存储结构的类型定义:#define MAX_SIZE 100 typedef telemtype sqbitree[MAX_SIZE];用一组地址连续的存储单元依次“自上而下、自左至右”存储完全二叉树的数据元素。 对于完全二叉树上编号为i的结点元素存储在一维数组的下标值为i-1的分量中,如图6-6(c)所示。 对于一般的二叉树,将其每个结点与完全二叉树上的结...
分类:其他好文   时间:2015-04-30 10:44:48    阅读次数:133
java 堆排序的实现
堆就是一个完全二叉树,堆要求是指 该节点大于它的两个子节点。而两个字节点大小不一定。堆排序的最坏时间复杂度为nlog(n),平均也为nlog(n),占用空间为o(1),是一种比较排序算法。堆排序也可以用于找最大的k个数。时间复杂度为klog(n),因为建堆后,每次循环实际上都生成一个最大数。下面见代...
分类:编程语言   时间:2015-04-28 11:16:36    阅读次数:161
数据结构之深度优先,广度优先遍历
深度优先和广度优先遍历在树和图中应用最为普遍,思想也类似,因此放到一起来总结。二叉树的深度优先广度优先遍历:一棵二叉树(2,(2(3,4),3(4,5))),这是一棵满二叉树,一共有7个节点,根节点2,深度为3数据结构定义如下:class Node: def __init__(self, value...
分类:其他好文   时间:2015-04-27 21:18:28    阅读次数:129
数据结构——二叉树
开始的地方先放上关于二叉树的定义二叉树:是n(n>=0)个结点的有限集合,它或者是空树(n=0),或者是由一个根结点及两颗互不相交的、分别称为左子树和右子树的二叉树所组成。满二叉树:一颗深度为k且有2^k-1个结点的二叉树称为满二叉树。除叶子结点外的所有结点均有两个子结点。节点数达到最大值。所有叶子...
分类:其他好文   时间:2015-04-27 19:40:27    阅读次数:130
(转)败者树 和 胜者树---数组实现
转自:http://blog.csdn.net/sqx2011/article/details/8241734胜者树和败者树都是完全二叉树,是树形选择排序的一种变型。每个叶子结点相当于一个选手,每个中间结点相当于一场比赛,每一层相当于一轮比赛。 不同的是,胜者树的中间结点记录的是胜者的标号;而败者树...
分类:编程语言   时间:2015-04-25 13:26:08    阅读次数:390
数据结构之二叉堆(构建堆,堆排序)-(七)
/* * 堆的性质(最小堆为例): * 0.根节点为最小值 * 1.堆可以看做是一个完全二叉树(即孩子节点从左向右排列) * 2.堆的高度lgn/lg2(n为节点的数目) * 3.第i节点的左孩子节点是2*i+1,右孩子节点为2*i+2 * 4.以任意一个节点作为根节点,那么该节点都是堆 * 5.可以用一个数据来表示堆 */ /* * 构建堆的原理: * 上滤 * 在最后一个节点后建立一个空节点...
分类:编程语言   时间:2015-04-23 21:47:50    阅读次数:182
堆排序
堆排算是排序算法中比较难的一个算法,在实现编码之前首先要对堆排的思想有一个清晰的思路,下面我们就来分析一下堆排序。    1.首先要明白堆排序第一步要有堆,也就是完全二叉树,那么问题来了,如何创建一个完全二叉树呢?完全二叉树是需要按层来创建的,如果你曾经编写过按层遍历二叉树这块会很好理解,按层的话要记录上一个结点,所以要用到     队列,创建的节点依次入队。    2.创建好完全二叉树,堆排...
分类:编程语言   时间:2015-04-21 09:56:25    阅读次数:165
1098条   上一页 1 ... 88 89 90 91 92 ... 110 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!