实质上是满足如下性质的完全二叉树:树中任一非叶结点的关键字均不大于(或不小于)其左右孩子(若存在)结点的关键字。...
分类:
其他好文 时间:
2014-08-21 09:52:13
阅读次数:
170
1.树的路径长度
树的路径长度是从树根到树中每一结点的路径长度之和。在结点数目相同的二叉树中,完全二叉树的路径长度最短。
2.树的带权路径长度(Weighted Path Length of Tree,简记为WPL)
结点的权:在一些应用中,赋予树中结点的一个有某种意义的实数。
结点的带权路径长度:结点到树根之间的路径长度与该结点上权的乘积。
树的带权路...
分类:
其他好文 时间:
2014-08-21 09:51:33
阅读次数:
301
堆的概念。 n个关键字序列Kl,K2,…,Kn称为堆,当且仅当该序列满足如下性质(简称为堆性质): (1) ki≤K2i且ki≤K2i+1 或(2)Ki≥K2i且ki≥K2i+1(1≤i≤ ) 满足(1)的称为小根堆,满足(2)的称为大根堆。 若将此序列所存储的向量R[1..n]看做是一棵完全二叉树的存储结构,则堆实质上是满足如下性质的完全二叉树:树中任一非叶结点...
分类:
其他好文 时间:
2014-08-20 16:22:02
阅读次数:
229
题目:判断一棵二叉树是否是完全二叉树
思路:
1.首先明确完全二叉树的概念。完全二叉树除最后一层外,所有层结点数均达到最大值,最后一层结点连续集中在最左边。空树也是完全二叉树。
2.我们可以通过层序遍历的方式遍历这个二叉树,使用一个队列存储遍历的结点。可以利用最后一层的结点集中在左侧这个特性解题,具体看代码:
代码:
bool isComple...
分类:
其他好文 时间:
2014-08-19 19:07:15
阅读次数:
190
题意:给出一列数字,可以构成完全二叉搜索树,求构成的完全二叉搜索树的层次遍历
思路:构建树的过程可以看做是不断寻找子树根节点的过程
根据完全二叉树的特征,可以通过确定左子树的子孙节点个数来确定对应的根节点下标
递归构建即可。
代码:
#include
#include
#include
#include
#include
using namespac...
分类:
其他好文 时间:
2014-08-19 10:56:24
阅读次数:
206
二叉搜索树定义 二叉搜索树上的基本操作所花费的时间与这棵树的高度成正比,对于有n个结点的一棵完全二叉树来说,这些操作的最坏运行时间为Θ(lgn),然而,如果这棵树是一条n个节点组成的线性链,那么同样的操作就要花费Θ(n)的最坏运行时间,一棵随机构造的二叉搜索树的期望高度为Ο(lgn),因此这样一棵树...
分类:
其他好文 时间:
2014-08-18 21:52:23
阅读次数:
433
一、定义 一些定义: 节点之间的路径长度:在树中从一个结点到另一个结点所经历的分支,构成了这两个结点间的路径上的经过的分支数称为它的路径长度 树的路径长度:从树的根节点到树中每一结点的路径长度之和。在结点数目相同的二叉树中,完全二叉树的路径长度最短。 结点的权:在一些应用中,赋予树中结点的一个有某种意义的实数。 结点的带权路径长度:结点到树根之间的路径长度与该结点...
分类:
编程语言 时间:
2014-08-18 12:37:54
阅读次数:
249
二叉树的创建。这里采用最简单的情况,创建完全二叉树,用数组来保存: 1 struct TreeNode 2 { 3 int val; 4 TreeNode *left, *right; 5 TreeNode(int x): val(x), left(NULL), right(...
分类:
其他好文 时间:
2014-08-18 01:30:03
阅读次数:
332
堆数据结构是一种数组对象,它可以被视为一颗完全二叉树...
分类:
其他好文 时间:
2014-08-17 17:08:52
阅读次数:
194
1 /* 2 * 二叉树 3 * 4 * (将完全二叉树的数组形式改为链表形式) 5 * 6 * 1 7 * 2 3 8 * ...
分类:
其他好文 时间:
2014-08-17 11:39:16
阅读次数:
345