网上的资料杂乱,树的旋转本来简单易懂但被写的很麻烦
树的旋转发生的情况总共四种:
左左,右右
左右,右左
三角形代表一棵子树,可以为空
由于是对称的两组,另外一组花的要假一点
实际还可以扯出一种情况,就是平衡状态,这种状态不需要旋转
旋转只分两种:左旋转和右旋转
然后,可以通过一次或多次旋转可以使得四种情况相互转化
证明:
由上面的图片2可以看出,左右,左右通过一次旋转可以转化为左左,右右的情况
然后由图一不难看出,左左,右右都可以变为趋于平衡的结构,也就是旋转通常要达到的目标情况,有这一情况为中转,则可以实现左左右右的转化
进入正题:
旋转的意义不在于旋转,而是通过旋转使得二叉排序树趋近平衡,然后由此引出的单旋转和双旋转