陈越《数据结构》第四讲 树中

4.1 二叉搜索树

4.1.1 定义与抽象数据类型的基本操作

1.

一棵二叉树,可以为;如果不为空,满足以下性质:
1. 非空 左子树 的所有 键值小于其根结点 的键值。
2. 非空 右子树 的所有 键值大于其根结点 的键值。
3. 左、右子树都是二叉搜索树 。

2.

查找:
1.1. Position Find( ElementType X,BinTree BST ) :从二叉搜索树BST中查找元素X ,返回其所在结点的地址;
1.2. Position FindMin( BinTree BST ) :从二叉搜索树BST 中查找并返回最小元素所在结点的地址;
1.3. Position FindMax( BinTree BST ) :从二叉搜索树BST 中查找并返回最大元素所在结点的地址。

注:
1.
2. 查找效率与树的高度有关!


插入与删除
1. BinTree Insert( ElementType X,BinTree BST )
2. BinTree Delete( ElementType X,BinTree BST )

1. 插入和删除有三种情况:
- 没有左儿子和右儿子;
- 只有左儿子或者右儿子;
- 既有左儿子又有右儿子(选取右子树中最小的那个)。

4.2 平衡二叉树

4.2.1 定义和特点

1.

平衡因子定义
(Balance Factor,简称BF): BF(T)=hLhR 其中 hL hR 分别为 T 左、右子树的高度

平衡二叉树的定义
(Balanced Binary Tree)(AVL):
空树,或者任一结点左、右子树高度差的绝对值不超过1 ,即 |BF(T)|1

2.

4.2.2 平衡二叉树的调整

整体思路:
RRLRLLRL

  1. RR

  2. LL

  3. LR

  4. RL

4.3

相关文章

【啊哈!算法】算法3:最常用的排序——快速排序       ...
匿名组 这里可能用到几个不同的分组构造。通过括号内围绕的正...
选择排序:从数组的起始位置处开始,把第一个元素与数组中其...
public struct Pqitem { public int priority; ...
在编写正则表达式的时候,经常会向要向正则表达式添加数量型...
来自:http://blog.csdn.net/morewindows/article/details/6...