Time Limit: 1000MS Memory limit: 65536K
题目描述
在树结构中,有一种特殊的二叉树叫做排序二叉树,直观的理解就是——(1).每个节点中包含有一个关键值 (2).任意一个节点的左子树(如果存在的话)的关键值小于该节点的关键值 (3).任意一个节点的右子树(如果存在的话)的关键值大于该节点的关键值。现给定一组数据,请你对这组数据按给定顺序建立一...
分类:
编程语言 时间:
2014-11-13 18:58:02
阅读次数:
196
原创性申明:
本文地址是 http://blog.csdn.net/zhujunxxxxx/article/details/40658925 转载请注明出处。作者联系邮箱 zhujunxxxxx@163.com
二叉排序树
(Binary Sort Tree)又称二叉查找树(Binary Search Tree),亦称二叉搜索树。
它或者是一棵空树;或者是具有下列性质的二叉树:
(1)若...
分类:
编程语言 时间:
2014-11-08 22:15:05
阅读次数:
211
什么是平衡二叉树?
平衡二叉树是一种特殊的二叉排序树,又称AVL树,它可以是一棵空树,或者是具有下列性质的二叉排序树:左子树与右子树的深度之差的绝对值不超过1,且它的左右子树都是平衡二叉树。
二叉树上结点的平衡因子BF(BalanceFactor)定义为改结点的左子树的深度减去它的右子树的深度,则平衡二叉树上所有结点的平衡因子只可能为-1,0或者1。
为什么要引申出平衡二叉树的概念?...
分类:
其他好文 时间:
2014-11-08 19:43:56
阅读次数:
291
1 AVL树的定义
AVL树是一种自平衡二叉排序树,它的特点是任何一个节点的左子树高度和右子树的高度差在-1,0,1三者之间。AVL树的任何一个子树都是AVL树。
2 AVL树的实现
AVL树本质是一种二叉排序树,所以二叉排序树的任何性质AVL树都具有,但是AVL树稍微复杂的地方就是AVL树必须满足平衡条件,具体跟BST不同的地方主要体现在插入,删除操作。
插入操作:当插入之后可能会出现不...
分类:
编程语言 时间:
2014-11-03 19:25:21
阅读次数:
183
1. 什么是二叉排序树?
二叉排序树是一种特殊的二叉树,可以是一棵空树,也可以是具有下列性质的二叉树:
1. 若左子树不为空,那么左子树所有结点的值都小于它的根结点的值。
2. 若右子树不为空,那么右子树所有结点的值都大于它的根节点的值。
3. 它的左右子树也分别是二叉排序树。
二叉排序树又称二叉查找树,是一种动态查找表,所谓动态查找表是指除了查询...
分类:
编程语言 时间:
2014-11-01 11:57:07
阅读次数:
281
#include
#include
using namespace std;
char c[100],d[100];
int o=0,e=0;
typedef struct bitnode
{
char data;
struct bitnode *lchild,*rchild;
}bitnode,*bitree;
void insert(bitree &t1,char key)
{
if(t...
分类:
编程语言 时间:
2014-10-31 23:44:01
阅读次数:
398
前言
二叉排序树(又称二叉查找树、二叉搜索树),在进行查找、插入及删除操作时其平均时间复杂度为O(logn),但是它们的最坏时间复杂度都是O(n)和顺序查找的效率相同,出现这种情况的原因在于它们虽然对关键字值进行了排序,但是并没有对树的形状进行限制。即当关键字序列有序时,就会出现这种最坏情况(单侧的二叉树),平衡二叉树的引入就可以对其进行有效调整。例如:对于关键字序列(12,24,...
分类:
其他好文 时间:
2014-10-16 18:21:53
阅读次数:
280
首先来看完全二叉树的定义:
若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就是完全二叉树。而将一维数组视为完全二叉树书得到的即为堆。
堆效率极高,像十分常用的排序算法、Dijkstra算法、Prim算法等都要用堆才能优化,几乎每次都要考到的二叉排序树的效率也要借助平衡性来提高,而平衡性基于完全二叉树...
分类:
其他好文 时间:
2014-10-13 20:50:17
阅读次数:
150
二叉排序树(BST) 二叉排序树是空树或者是满足如下性质的树 (1)若它的左子树不空,则左子树上所有关键字的值均小于关键字的值 (2)若它的右子树不空,则右子树上所有关键字的值均大于跟关键字的值。 (3)左右子树各是一颗二叉排序树。说明: 在二叉排序树中插入关键字均为在新建的叶子上,由于找的的插入位...
分类:
编程语言 时间:
2014-10-12 17:03:28
阅读次数:
177
树形结构是一类重要的非线性数据结构,当中以树和二叉树最为经常使用。二叉树是每一个结点最多有两个子树的有序树。通常子树的根被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用作二叉查找树和二叉堆或是二叉排序树。二叉树的每一个结点至多仅仅有二棵子树(不存在...
分类:
其他好文 时间:
2014-10-05 12:06:58
阅读次数:
111