码迷,mamicode.com
首页 >  
搜索关键字:满二叉树 完全二叉树    ( 1098个结果
堆排序
堆排序是对简单选择排序算法的一种改进,在每次选择最小记录的同时,根据比较结果对其他记录做出相应的调整。堆是具有下列性质的完全二叉树:每个节点的值都大于(小于)或者等于其左右孩子节点的值,为大顶堆(小于)。堆排序的基本思想是:从最后一个含有叶子节点的节点开始将待排序列构造成一个堆,然后将堆顶元素与末尾...
分类:编程语言   时间:2014-12-23 10:10:55    阅读次数:182
二叉树的构造与遍历(前序、中序、后序)
注意: 构造二叉树的时候要用双重指针,用单重指针时,要有返回值。代码如下:/*此处输入空格代表空,默认按前序遍历完全二叉树的方式输入数据形参是在执行函数时自动分配的,没有执行这个函数之前不占用存储空间,当函数执行完毕后释放这个形参,所以我们要使用到双重指针来构造树。这样,我们传进去的是树节点的指针....
分类:其他好文   时间:2014-12-18 00:12:40    阅读次数:140
经典排序算法 - 堆排序Heap sort
经典排序算法 - 堆排序Heap sort 堆排序有点小复杂,分成三块 第一块,什么是堆,什么是最大堆 第二块,怎么将堆调整为最大堆,这部分是重点 第三块,堆排序介绍 第一块,什么是堆,什么是最大堆 什么是堆 这里的堆(二叉堆),指得不是堆栈的那个堆,而是一种数据结构。 堆可以视为一棵完全的二叉树,完全二叉树的一个“优秀”的性质是,除了最底层之外,每一层都是满的,这使得堆可...
分类:编程语言   时间:2014-12-16 13:35:14    阅读次数:219
堆排序算法
/* date:2014.12.15 堆结构:是一种树结构,准确说为完全二叉树。在这个树中,每个节点对应原始数据的一个记录,且满足一下条件:1.如果按照从小到大的顺序排序,要求非叶节点的数据要大于或等于其左右子节点的数据;2.如果按照从大到小的顺序排序,要求非叶节点的数据要小于或等于其左右子节点的数据。 堆排序思路:基于选择排序的思想,利用堆结构和二叉树的一些性质来完成数据的排序。 流程:1...
分类:编程语言   时间:2014-12-15 20:24:47    阅读次数:226
UVA679 Dropping Balls【二叉树结点编号】
题目大意:给一颗深度为D的完全二叉树,节点编号从上到下从左到右为1,2,3,4…… 在结点1上方一个小球,小球落到一个结点上就会改变该点的开关。若该点开,则向 左走,否则向右走,给你I个小球,问最后一个小球最后所能落到的叶子编号。 思路:每一个结点上第奇数个小球都落在左子树上,第偶数个小球都落在右子树上。 直接对最后一个小球判断就可以了。若I为该结点奇数,它是向左走的第(I+1)/2个小球。 若为偶数,则是向右走的I/2个小球。...
分类:其他好文   时间:2014-12-11 10:31:18    阅读次数:194
优先队列 - 数据结构 (二叉堆)
优先队列包括二叉堆、d-堆、左式堆、斜堆、二项队列等 1、二叉堆         堆是一棵被完全填满的二叉树,有可能例外的是在底层,底层上的元素从左到右填入。这样的树称为完全二叉树。         堆序的性质:在一个堆中,对于每一个节点X,X的父亲的关键字小于(或等于)X中的关键字,根节点除外(它没有父节点)。完全二叉树可以用数组实现。...
分类:其他好文   时间:2014-11-30 20:10:24    阅读次数:205
数据结构 之 二叉堆(Heap)
注:本节主要讨论最大堆(最小堆同理)。一、堆的概念 堆,又称二叉堆。同二叉查找树一样,堆也有两个性质,即结构性和堆序性。 1、结构性质: 堆是一棵被完全填满的二叉树,有可能的例外是在底层,底层上的元素从左到右填入。这样的树称为完全二叉树(complete binary tree)。下图就是这样一个例...
分类:其他好文   时间:2014-11-28 15:49:09    阅读次数:238
[ACM] sdut 2882 Full Binary Tree (满二叉树的公共祖先)
Full Binary Tree Time Limit: 2000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 In computer science, a binary tree is a tree data structure in which each node has at most two children...
分类:其他好文   时间:2014-11-27 20:34:56    阅读次数:192
通用的最小堆(最大堆)D-ary Heap
听说有一种最小(大)堆,不限于是完全二叉树,而是完全D叉树,名为D-ary Heap(http://en.wikipedia.org/wiki/D-ary_heap)。D可以是1,2,3,4,100,对于优先队列该有的功能都没有问题。 动手写一个D-ary Heap,应该不难。简单起见,不考虑...
分类:其他好文   时间:2014-11-27 00:00:48    阅读次数:519
线段树的实现及其经典用法(C++实现)
线段树的实现及其经典用法(C++实现) 一、线段树的定义 首先,线段树是一棵完全二叉树。它的特点是:每个结点表示的是一个线段,或者说是一个区间。事实上,一棵线段树的根结点表示的是“整体”区间,而它的左右子树也是一棵线段树,分别表示区间的左半边和右半边。树中的每个结点表示一个区间[a,b]。每一个叶子结点表示一个单位区间。对于每一个非叶结点所表示的结点[a,b],其左孩子表示的区间为[a,(a+b)/2],右孩子表示的区间为[(a+b)/2,b]。 用T(a, b)表示一棵线段树,参数a,b表示区间[...
分类:编程语言   时间:2014-11-25 23:39:34    阅读次数:723
1098条   上一页 1 ... 96 97 98 99 100 ... 110 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!