首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

VC++2012编程演示数据结构《9》平衡二叉搜索树

2012-11-22 
VC++2012编程演练数据结构《9》平衡二叉搜索树平衡二叉搜索树  任何结点的左子树和右子树高度最多相差1的二

VC++2012编程演练数据结构《9》平衡二叉搜索树
平衡二叉搜索树

  任何结点的左子树和右子树高度最多相差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结点的删除算法

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

类的实现如下



代码下载如下

http://download.csdn.net/detail/yincheng01/4785937


热点排行