二叉排序树
二叉排序树是一个基础的树的数据结构。应用非常多。它的特性就是,左孩子小于parent,右孩子大于parent.
寻找节点
寻找节点就是直接根据数值的大小,从root节点开始遍历,大于当前遍历节点就向它的右子树查找,相反则查找它的左子树。然后返回。
查找最大最小节点
直接根据root节点,遍历到最右就是最大节点,遍历到最左,就是最小节点。
插入节点
...
分类:
其他好文 时间:
2014-08-01 00:01:20
阅读次数:
247
B树、B-树、B+树、B*树、红黑树rbtree 二叉排序树、trie树Double Array 字典查找树
B树
即二叉搜索树:
1.所有非叶子结点至多拥有两个儿子(Left和Right);
2.所有结点存储一个关键字;
3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树;
...
分类:
其他好文 时间:
2014-07-26 02:24:36
阅读次数:
232
前驱和后继本文所述为二叉排序树的前驱和后继,如果想了解二叉排序树的概念,可以参考我的博文***给定一个二叉查找树中的结点,有时候要求找出在中序遍历顺序下它的后继。如果所有的关键字均不同,则某一结X点的后继就是所有(结点值)大于X的结点中最小的那个。包含两种情况:情况一:结点X的右子树非空,则X的后继...
分类:
其他好文 时间:
2014-07-24 12:22:15
阅读次数:
223
二叉排序数或者是一棵空树,或者是一棵具有以下性质的二叉树:(1)若它有左子树,则左子树上所有结点的数据均小于根结点的数据。(2)若它有右子树,则右子树上所有结点的数据均大于根结点的数据。(3)左、右子树本身又各是一棵二叉排序树。这样,在查找的时候,从根节点开始,若查找的元素小于根节点则查找其左子树,...
分类:
其他好文 时间:
2014-07-22 23:29:37
阅读次数:
367
平衡二叉树(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
二叉排序树(Binary Sort Tree):或者是一颗空树,或者是具有以下性质的树:(1)若它的左子树不空,则左子树上所以结点的值均小于它的根节点的值;(2)若它的右子树不空,则右子树上的所以结点的值均大于它的根节点的值;(3)它的左、右子树也分别是二叉排序树。
二叉排序树的基本操作均可以在O(h)时间内完成(算法导论p165)。
相关操作代码如下:
int InsertBST(BiTr...
分类:
其他好文 时间:
2014-07-09 13:12:09
阅读次数:
160