在众多的平衡树之中,大部分依赖旋转(单旋或双旋)来维持平衡,但是有一些平衡树是不依赖于旋转操作。替罪羊树便是其中一种。
替罪羊树基于一种暴力重构的操作来保证平衡,具体来说,就是定义一个平衡因子alpha,当某个节点x的某棵子树的size值>x的size值*alpha时便将这棵以x为根的子树拍扁重构。
一个需要重构的例子
重构的目的是让该子树将变得平衡,那么如何进行重构使得该树变得平衡呢?
具体方法是:
1、将该树拍扁,存入数组/vector中。
在众多的平衡树之中,大部分依赖旋转(单旋或双旋)来维持平衡,但是有一些平衡树是不依赖于旋转操作。替罪羊树便是其中一种。
替罪羊树基于一种暴力重构的操作来保证平衡,具体来说,就是定义一个平衡因子alpha,当某个节点x的某棵子树的size值>x的size值*alpha时便将这棵以x为根的子树拍扁重构。
一个需要重构的例子
重构的目的是让该子树将变得平衡,那么如何进行重构使得该树变得平衡呢?
具体方法是:
1、将该树拍扁,存入数组/vector中。