二叉排序树:左小右大,但是会形成畸形的树,如链表。
解决:平衡二叉排序树。(平衡:高度差不大于1)
不平衡 转为 平衡的实现方式:旋转
依据树的结构来确定怎么旋转,例如RR意思是右子树的右子树出问题,旋转时带子树:
①RR:左旋(上两个旋)
②LL:右旋(上两个旋)
③RL:先右旋(下两个旋)再左旋(上两个旋)
④LR:先左旋(下两个旋)再右旋(上两个旋)
平衡步骤:
①先分类确定怎么旋转!
②“鸠占鹊巢”:位置被占则先踢掉原来的
③甩锅:下两个旋
二叉排序树:左小右大,但是会形成畸形的树,如链表。
解决:平衡二叉排序树。(平衡:高度差不大于1)
不平衡 转为 平衡的实现方式:旋转
依据树的结构来确定怎么旋转,例如RR意思是右子树的右子树出问题,旋转时带子树:
①RR:左旋(上两个旋)
②LL:右旋(上两个旋)
③RL:先右旋(下两个旋)再左旋(上两个旋)
④LR:先左旋(下两个旋)再右旋(上两个旋)
平衡步骤:
①先分类确定怎么旋转!
②“鸠占鹊巢”:位置被占则先踢掉原来的
③甩锅:下两个旋