算法14动态查找表.pptVIP

  • 1
  • 0
  • 约8.46千字
  • 约 43页
  • 2019-10-17 发布于广东
  • 举报
⑷ 旋转算法 void LL_rotate(BBSTNode *a) { BBSTNode *b ; b=a-Lchild ; a-Lchild=b-Rchild ; b-Rchild=a ; a-Bfactor=b-Bfactor=0 ; a=b ; } a b bR aR bL x a b bR aR bL x * ⑴ 失衡原因 在结点a的左孩子的右子树上进行插入,插入使结点a失去平衡。a插入前的平衡因子是1,插入后a的平衡因子是2。设b是a的左孩子,c为b的右孩子, b在插入前的平衡因子只能是0,插入后的平衡因子是-1; c在插入前的平衡因子只能是0,否则,c就是失衡结点。 2 LR型平衡化旋转 a b bL aR cL x cR x c a c bL aR cL x cR x b * ⑵ 插入后结点c的平衡因子的变化分析 ① 插入后c的平衡因子是1:即在c的左子树上插入。设c的左子树的深度为HcL,则右子树的深度为HcL-1;b插入后的平衡因子是-1,则b的左子树的深度为HcL,以b为根的子树的深度是HcL+2。 a b bL aR cL x cR x c a c bL aR cL x cR x b * ⑶ 平衡化旋转方法 先以b进行一次逆时针旋转(将以b为根的子树旋转为以c为根),再以a进行一次顺时针旋转,如图所示。将整棵子树旋转

文档评论(0)

1亿VIP精品文档

相关文档