按照严蔚敏那本教材上的说法:一个深度为k,节点个数为 2^k - 1 的二叉树为满二叉树。这个概念很好理解, 就是一棵树,深度为k,并且没有空位。 首先对满二叉树按照广度优先遍历(从左到右)的顺序进行编号。 一颗深度为k二叉树,有n个节点,然后,也对这棵树进行编号,如果所有的编号都和满二叉树对应,那... ...
分类:
其他好文 时间:
2016-08-20 19:16:27
阅读次数:
1650
试写一算法,完成判定某二叉树是否为完全二叉树的功能...
分类:
其他好文 时间:
2016-08-19 08:37:03
阅读次数:
109
堆是一种经过排序的完全二叉树,其中任一非终端节点的数据值均不大于(或不小于)其左孩子和右孩子节点的值。根结点(亦称为堆顶)的关键字是堆里所有结点关键字中最小者的堆称为小根堆。 根结点(亦称为堆顶)的关键字是堆里所有结点关键字中最大者,称为大根堆。 http://www.cnblogs.com/hua ...
分类:
其他好文 时间:
2016-08-15 07:50:04
阅读次数:
175
堆堆,也叫二叉堆,就是完全二叉树二叉堆满足二个特性:1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。2.每个结点的左子树和右子树都是一个二叉堆(都是最大堆或最小堆)。当父结点的键值总是大于或等于任何一个子节点的键值时为最大堆。当父结点的键值总是小于或等于任何一个子节点的键值时为最小... ...
分类:
其他好文 时间:
2016-08-14 14:22:27
阅读次数:
131
一、本次实验环境:腾讯云虚拟主机centos7.2上配置pyenv多版本python管理器,并安装交互式web编辑器jupyter,python版本为3.5.2,利用xshell远程ssh连接腾讯云主机,操作简易、方便。二、对堆的简单认识:1、堆是局部有序,且是一棵高度为O(lgN)的完全二叉树,其基本操作至多与..
分类:
其他好文 时间:
2016-08-11 23:07:06
阅读次数:
355
这个堆的实现采用数组存储的完全二叉树实现。 最近有点烦躁,先是跳槽到了一个外包公司,感觉2016有点坑,另外一件事就是老婆怀孕了,但是在家里没人照顾,很担心。 这个堆的实现就暂时不优化了,基本的插入,删除实现。 还有,NJ,这个城市真热。 这周希望把剩下的几个数据结构给写了@2016-08-11 0 ...
分类:
其他好文 时间:
2016-08-11 00:56:47
阅读次数:
243
1、堆一种完全二叉树的线性表示方法;就是数组形式保存数据。大堆:根(父)结点大于左右结点数据------->降序小堆:根(父)结点小于左右结点------->升序小堆如图:小堆符合每个根(父)结点都比左右结点小!!!堆的存储结构,就是一个线性表结构:private:
enum{HEAP_DEFAU..
分类:
其他好文 时间:
2016-08-09 00:40:25
阅读次数:
205
判断二叉树是否为完全二叉树。完全二叉树的定义是,前n-1层都是满的,第n层如有空缺,则是缺在右边,即第n层的最右边的节点,它的左边是满的,右边是空的。这个问题的描述已经提示了解法,采用广度优先遍历,从根节点开始,入队列,如果队列不为空,循环。遇到第一个没有左儿子..
分类:
其他好文 时间:
2016-08-08 01:02:49
阅读次数:
132
堆排序是对选择排序的改进(时间复杂度和希尔排序一样O(nlog2n)) 数据结构:完全二叉树(大顶堆,根节点都比左右节点大,小顶堆,根节点小于双亲节点) public class HeapSort { public static void main(String[] args) { int a[]= ...
分类:
编程语言 时间:
2016-08-06 17:34:45
阅读次数:
135
完全二叉树:若一棵二叉树具有具有n个节点,它的每个节点都与高度为k的满二叉树编号为0~n-1结点一一对应,则称这可二叉树为完全二叉树。方法一:一维数组存储根据完全二叉树的定义和性质,利用一位数组作为完全二叉树的存储,如下图由图,节点的编号与数组元素的下标是一一对应..
分类:
其他好文 时间:
2016-08-06 14:33:05
阅读次数:
144