Chinaunix首页 | 论坛 | 博客
  • 博客访问: 676365
  • 博文数量: 156
  • 博客积分: 6010
  • 博客等级: 准将
  • 技术积分: 1201
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-05 20:08
文章分类

全部博文(156)

文章存档

2010年(13)

2008年(39)

2007年(104)

我的朋友

分类:

2007-07-08 21:43:45

平衡二叉搜索树

任何结点的左子树和右子树高度最多相差1的二叉搜索树。
    (1)AVL树的插入算法
         a. 插入结点之后仍然是AVL树,则不调整;
         b. 插入结点之后不再满足AVL树条件,则进行调整,根据导致不平衡的原因,分为:
           a) LL型――单旋转调整
           b) LR型――双旋转调整
           c) RL型――双旋转调整
           d) RR型――单旋转调整
         下图是顺序插入单词{cup,cop,copy,hit,hi,his,hia}后得到的AVL树,单词之间按照字典顺序比较:


    (2)AVL树的删除算法
        a. 删除过程如BST结点的删除算法(教材算法4.16);
        b. 删除后调整――从被删除的结点找到祖父结点,然后开始单旋转或多旋转操作,一次旋转结束并不 意味着树已经平衡,因为这可能会导致它的祖先结点发生新的不平衡。所以这样的调整操作要一直进行下去,直到树平衡为止。

 

阅读(1712) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~