在上一篇博客中写道红黑树的各种操作,但是它的各种操作,尤其是删除操作分类情况比较多且复杂,不容易编程实现。
因此,Arne Andersson在93年时,在一篇“Balanced search trees made simple”就对这个RBT进行了改进。但是,现在好像应用不是很多。对于这方面介绍的资料也比较少。
我写这篇文章就是想介绍一下AA树以及它的基本操作。
1、AA-Tree提出的原因:
RBT编程实现比较繁琐,因为分情况考虑比较多且复杂,为了简化红黑树而提出来的。
2、AA-Tree的定义:
1、AA-Tree是RB-Tree的一种变型,是红黑树
2、“红”结点只能作为结点的右孩子,“黑”结点均可;
3、结点中的level相当于RBT中的结点的黑高度;
4、“红”结点的level与其父结点的level相同;
5、“黑”结点的level比其父结点的level小1;
6、左孩子的level比父结点小1,右孩子的level比父结点