题目:给你一棵完全二叉树,再给你一个xi1~xin-1的序列,对应从根到叶子上一层;
每层对应一个xi,叶子是0或1,现在给你一些路径,输出路径对应的叶子的值;
路径是01串,从更开始往下走,0表示左子树,1表示右子树,对应x1~xn-1的顺序。
分析:模拟。直接安找路径走过去就好了,因为是二叉树,正好对应二进制数。
注意:路径的顺序要调整到...
分类:
其他好文 时间:
2015-03-12 22:38:29
阅读次数:
174
[算法说明]
堆排序是对简单选择排序的改进
简单选择排序是从n个记录中找出一个最小的记录,需要比较n-1次。但是这样的操作并没有把每一趟的比较结果保存下来,在后一趟的比较中,有许多比较在前一趟已经做过了,但由于前一趟排序时未保存这些比较结果,所以后一趟排序时又重复执行了这些比较操作,因而记录的比较次数较多。
堆是具有下列性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆...
分类:
编程语言 时间:
2015-03-12 22:35:02
阅读次数:
206
左式堆(Leftist Heaps)又称作最左堆、左倾堆。左式堆作为堆的一种,保留了堆的一些属性。第1,左式堆仍然以二叉树的形式构建;第2,左式堆的任意结点的值比其子树任意结点值均小(最小堆的特性)。但和一般的二叉堆不同,左式堆不再是一棵完全二叉树(Complete tree),而且是一棵极不平衡的...
分类:
其他好文 时间:
2015-03-12 18:45:31
阅读次数:
151
堆排序的时间复杂度是,具有空间原址性,即任何时候都只需要常数个额外的元素空间存储临时数据。一、堆二叉堆是一个数组,可看成一个近似的完全二叉树,树上的每个结点对应数组中的一个元素。除了最底层外,该树是完全充满的,而且是从左到右填充。二叉堆可以分为两种形式:最大堆和最小堆。在最大堆中除根节点外所有结点i...
分类:
编程语言 时间:
2015-03-11 19:04:58
阅读次数:
172
注:堆分为最大堆和最小堆两种,下面我们讨论的堆都是指的最大堆,最小堆的性质与其是类似的。堆数据结构是一种数组对象,可以被视为一棵完全二叉树(这棵二叉树除最后一层外,其余每层都是填满的);我们用一个数组来存储一个堆,表示堆的数组有两个属性:length[A]表示的是数组中的元素个数,headsize[A]表示堆中元素个数(也就是说数组中的元素不一定都是堆中的元素)。
下面不加证明的给出一些堆的性质:...
分类:
编程语言 时间:
2015-03-11 00:46:49
阅读次数:
192
题目大意:给定一棵完全二叉树,可以交换某个节点的左右儿子,求最少交换多少次可以使所有的叶节点深度相差不超过1,且深度较大的叶节点都在深度较小的叶节点左侧
这水题居然还WA了两次- - 脑残害死人啊QAQ
首先DFS一次处理出深度最大和最小的叶节点 如果深度相差>=2则无解
然后再DFS一遍,对于每个节点首先向子节点递归,然后记录左右两棵子树中深度较大叶节点的存在性和深度较小叶节点的存在性...
分类:
其他好文 时间:
2015-03-08 18:50:13
阅读次数:
163
堆排序算法 一、基本思想:是一种属性排序选择方法,在排序过程中,将 R[1...n] 看成是一棵完全二叉树的顺序存储结构,利用完全二叉树中双亲结点和孩子结点之间的内在关系,在当前无序区域中选择关键字最大(或最小)的记录。 二、C 语言代码: 1 /** 2 * 堆排序的关键是...
分类:
编程语言 时间:
2015-03-07 06:13:09
阅读次数:
161
二叉堆(以最小堆为例),其具有结构性质和堆序性质结构性质: 堆是一棵完全的二叉树,一颗高为h的完全二叉树有2^h到2^h-1个节点,高度为log N 而且该结构可以很容易的使用数组来表示:对于数组中任一位置i上的元素,其左儿子在位置2i上,右儿子在2i+1,其父节点在[x/2]处堆序性质:在一...
分类:
其他好文 时间:
2015-03-05 22:04:05
阅读次数:
178
本文先介绍了树的概念,然后给出了二叉树和多叉树的实现源码实例。
一、树的概念
树(本质上就使用了递归来定义的,递归就是堆栈应用,因此树离不开递归和堆栈):树是n个点的有限结合。n=0时是空树,n=1时有且仅有一个结点叫做根,n>1,其余的结点被分成m个互不相交的子集,每一个子集又是一棵树。
森林
二叉树
满二叉树 深度为k,结点个数是2的k次方-1的二叉树。
完全二叉树 深度为k,...
分类:
其他好文 时间:
2015-03-05 09:16:26
阅读次数:
130
题目1176:树查找
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:3979
解决:1700
题目描述:
有一棵树,输出某一深度的所有节点,有则输出这些节点,无则输出EMPTY。该树是完全二叉树。
输入:
输入有多组数据。
每组输入一个n(1
输出:
输出该树中第d层得所有节点,节点间用空格隔开...
分类:
其他好文 时间:
2015-03-01 13:16:54
阅读次数:
148