平衡二叉树(Balanced binary tree)是由阿德尔森-维尔斯和兰迪斯(Adelson-Velskii
and Landis)于1962年首先提出的,所以又称为AVL树。
定义:平衡二叉树或为空树,或为如下性质的二叉排序树:
(1)左右子树深度之差的绝对值不超过1;
(2)左右子树仍然为平衡二叉树.
平衡因子BF=左子树深度-右子树深度....
分类:
其他好文 时间:
2014-07-22 00:08:33
阅读次数:
257
题目:输入一棵二叉树的根结点,判断该树是不是平衡二叉树。如果某二叉树中任意结点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。
注:这里不考虑该二叉树是否是二叉排序树
解决要点:
1.后序遍历二叉树;
2.递归。
核心算法:
bool isBalanced(pTree pT,int *depth)
{
if(!pT)//参数判断
{
*d...
分类:
其他好文 时间:
2014-07-13 18:58:22
阅读次数:
239
二叉排序树:
二叉排序树(Binary Sort Tree)又称二叉查找树(Binary Search Tree),亦称二叉搜索树。 它或者是一棵空树;或者是具有下列性质的二叉树:
(1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;
(2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值; (3)左、右子树也分别为二叉排序树;
注:中序遍历一棵二叉排序...
分类:
其他好文 时间:
2014-07-12 19:35:08
阅读次数:
249
1.二叉排序树的概念:二叉排序树是一种动态树表。 二叉排序树的定义:二叉排序树或者是一棵空树, 或者是一棵具有例如以下性质的二叉树: ⑴ 若它的左子树非空,则左子树上全部结点的值均小于根结点的值; ⑵ 若它的右子树非空,则右子树上全部结点的值均大于根结点的值; ⑶ 左、右子树本身又各是一棵二叉排序树...
分类:
其他好文 时间:
2014-07-11 11:26:27
阅读次数:
159
二叉排序树的创建、查询、插入与删除
一、简述二叉排序树的思想:
动态查找表中主要有二叉树结构和树结构两种,而二叉树结构分为二叉排序树和平衡二叉树,树结构分为B-树和B+树等。
二叉排序树可以是一颗空树二叉排序树的性质:二叉排序树上的节点满足左子树
也就是说二叉排序树必须有顺序,且满足左子树
二、构建二叉排序树
创建二叉排序树通常...
分类:
其他好文 时间:
2014-07-10 22:57:28
阅读次数:
334
一。概念每一趟在n-i+1(i=1,2,…n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录。基于此思想的算法主要有简单选择排序、树型选择排序和堆排序。二。示例初始序列: {49 27 65 97 76 12 38}第1趟:12与49交换:12{27 65 97 76 49 ...
分类:
其他好文 时间:
2014-07-09 15:46:21
阅读次数:
153
二叉排序树(Binary Sort Tree):或者是一颗空树,或者是具有以下性质的树:(1)若它的左子树不空,则左子树上所以结点的值均小于它的根节点的值;(2)若它的右子树不空,则右子树上的所以结点的值均大于它的根节点的值;(3)它的左、右子树也分别是二叉排序树。
二叉排序树的基本操作均可以在O(h)时间内完成(算法导论p165)。
相关操作代码如下:
int InsertBST(BiTr...
分类:
其他好文 时间:
2014-07-09 13:12:09
阅读次数:
160
前言
本文不打算延续前几篇的风格(对所有的源码加入注释),因为要理解透TreeMap的所有源码,对博主来说,确实需要耗费大量的时间和经历,目前看来不大可能有这么多时间的投入,故这里意在通过于阅读源码对TreeMap有个宏观上的把握,并就其中一些方法的实现做比较深入的分析。
红黑树简介
TreeMap是基于红黑树实现的,这里只对红黑树做个简单的介绍,红黑树是一种特殊的二叉排序树,关于二叉排序树,参见:http://blog.csdn.net/ns_code/article/details/...
分类:
编程语言 时间:
2014-07-08 14:58:49
阅读次数:
170
定义
二叉搜索树(Binary Search Tree)或称二叉查找树,也称二叉排序树(Binary Sort Tree)。它或者是一棵空树,或者是具有下列性质的二叉树:
若左子树不空,则左子树上所有节点的值均小于它的根节点的值;
若右子树不空,则右子树上所有节点的值均大于它的根节点的值;
左、右子树也分别为二叉搜索树;
性质
二叉搜索树与普通二叉树相比,有一些优秀的特征或性质:
由于节点是有序排放的:左子树<根节点<右子树。故在查找一个节点的时候,只需先和根节点比较,再决定是进入左子树还是右子树查找。...
分类:
其他好文 时间:
2014-07-06 11:06:37
阅读次数:
167
二分查找树(也叫二叉查找树、二叉排序树)的提出是为了提供查找效率,之所以称为二分查找树,因为该二叉树对应着二分查找算法,查找平均的时间复杂度为o(logn),所以该数据结构的提出是为了提高查找效率。...
分类:
其他好文 时间:
2014-07-03 15:43:16
阅读次数:
286