题目描述 有一棵树,输出某一深度的所有节点,有则输出这些节点,无则输出EMPTY。该树是完全二叉树。 输入描述: 输入有多组数据。每组输入一个n(1<=n<=1000),然后将树中的这n个节点依次输入,再输入一个d代表深度。 输出描述: 输出该树中第d层得所有节点,节点间用空格隔开,最后一个节点后没 ...
分类:
其他好文 时间:
2016-07-22 10:10:01
阅读次数:
188
一、二叉树相关概念
1.1 基本术语
结点的度:一个结点的子结点的个数称为结点的度。树的度:树中结点的最大度数为树的度树的深度(高度):树中结点的最大层数,从1开始。
1.2 二叉树分类
满二叉树:一颗高度为h,并且含有2^h-1个结点的二叉树称为满二叉树。即树中每一层都含有最多的节点。除叶子节点每个节点的度都为2。
完全二叉树:当高度为h,具有n个结点的二叉树,...
分类:
其他好文 时间:
2016-07-17 00:46:59
阅读次数:
358
堆排序 堆排序时间复杂度为O(nlgn),且具有空间原址性,只需要常数个额外的元素空间存储临时数据。但堆排序是不稳定的算法,即对相等的两个元素,排序后不能保证他们的顺序与原始数据的顺序相同。 1.堆 堆是一个数组,可以把它看成一个近似的完全二叉树。树上的每一个结点对应数组中的一个元素,除最底层外,该 ...
分类:
编程语言 时间:
2016-07-14 19:04:34
阅读次数:
164
大根堆的定义:1 大根堆是一个大根树 2 大根堆是一个完全二叉树 所以大根堆用数组表示是连续的,不会出现空白字段。 对于大根堆的插入 对于大根堆的插入,可以在排序前确定大根堆的形状,可以确定元素5从位置6插入,那么比较元素5和位置3的元素2, 元素5比元素2大,将2下移。接着比较元素5和元素20,一 ...
分类:
其他好文 时间:
2016-07-13 20:27:52
阅读次数:
215
二叉树的性质
1满二叉树和完全二叉树
2二叉树的主要性质
二叉树的数据结构
二叉树的算法
补充
总结1.二叉树的性质1.1满二叉树和完全二叉树 在一棵二叉树中,如果所有的分支节点都有左孩子和右孩子,并且叶子节点都集中在二叉树的最下一层,则这样的二叉树被称为满二叉树。
如果一棵深度为k有n个节点的二叉树进行编号后,各结点的编号与深度为k的满二叉树中相同位置山的结点的编号军相投,那么这棵二叉树就...
分类:
其他好文 时间:
2016-07-03 15:53:14
阅读次数:
216
Huffman树是完全二叉树,权重较大的节点距离根较近。
Huffman编码是一种编码方法,该方法完全依据字符出现概率来构造异字头的平均长度最短的码字。...
分类:
编程语言 时间:
2016-06-29 11:32:54
阅读次数:
241
堆的定义如下:n个元素的序列(K1,K2......Kn)当且仅当满足Ki<=K2i&&Ki<=K2i或Ki>=K2i&&Ki>=K2i(i=1,2,3,...n/2)时称之为堆 以一维数组作为堆的存储结构,堆可以看成一个完全二叉树。 最大堆:每个父节点的都大于孩子节点。最小堆:每个父节点的都小于孩 ...
分类:
编程语言 时间:
2016-06-27 23:04:17
阅读次数:
219
因为是要构造完全二叉树,所以树的形状已经确定了。 因此只要递归确定每个节点是多少即可。 ...
分类:
其他好文 时间:
2016-06-25 20:24:08
阅读次数:
121
堆实际上是一棵完全二叉树,其任何一非叶节点满足性质:
Key[i]<=key[2i+1]&&Key[i]=Key[2i+1]&&key>=key[2i+2]
即任何一非叶节点的关键字不大于或者不小于其左右孩子节点的关键字。
堆分为大顶堆和小顶堆,满足Key[i]>=Key[2i+1]&&key>=key[2i+2]称为大顶堆,
满足 Key[i]<=key[2i+1]&&Key[i]<=key[2i+2]称为小顶堆。
由上述性质可知大顶堆的堆顶的关键字肯定是所有关键字...
分类:
编程语言 时间:
2016-06-24 15:45:04
阅读次数:
187