经典结构 搜索二叉树

内容:

1、搜索二叉树

2、典型搜索二叉树原理(AVL树、红黑树、SB树)

3、旋转 -- Rebalance

4、Java中红黑树的使用

1、搜索二叉树

搜索二叉树的定义:对于一棵二叉树中的任意子树,其左子树上的所有数值小于头结点的数值,

其右子树上所有的数值大于头结点的数值,并且树中不存在数值相同的结点。也称二叉查找树

2、典型搜索二叉树原理(AVL树、红黑树、SB树)

(1)AVL树

平衡二叉树:对于一棵二叉树中的任意子树,其左子树和其右子树的 高度相差不超过1

AVL树是一种具有严苛平衡性的搜索二叉树,那就是所有子树的左子树和右子树的高度相差不超过1

弊端是,每次发现因为插入、删除操作破坏了这种平衡性后,都需作出调整从而恢复平衡,调整较为频繁

(2)红黑树

(3)SB树 

3、旋转 -- Rebalance

4、Java中红黑树的使用

Java中红黑树的实现有TreeSet和TreeMap ,前者结点存储的是单一数据,而后者存储的是 <key,value> 的形式 

使用代码如下:

猜你喜欢

转载自www.cnblogs.com/wyb666/p/10336164.html