这两天又重新看了一下二叉查找树,下面把自己的理解总结一下:
二叉查找树又叫二叉排序树,简称BST
BST 满足如下性质:
每个节点的左孩子节点小于双亲节点,右孩子节点大于双亲节点。
在二叉查找树的基础上进行改进,就有了二叉平衡树(AVL树)和红黑树(RBT)
今天主要看了一下平衡树的旋转操作,有四种情况
:左左,右右,左右和右左。
对于左左和右右情况,调节成平衡树,需要一次旋转,下面以左左为例:
即进行左旋操作,左旋,顾名思义,分开理解,左即为左子树,旋即为旋转
左旋即以左子树进行旋转。
对于左右和右左,需要进行两次旋转,以左右为例:
首先,进行右旋,右旋和左旋理解一样,即以右子树进行旋转,然后进行左旋。
目前是知道这么理解了,但是实现代码还是右一定难度的。。
继续探索,B,B+,B-树。
个人认为如果把这几个问题搞懂了,数据结构就是小菜一碟了。