Rebalancing ¡AVL ¡trees ¡
Rebalancing ¡AVL ¡trees ¡ z ¡ h+1 ¡ h ¡ h-‑2 ¡ z ¡ h+1 ¡ h ¡ h-‑2 ¡ (the ¡red ¡nodes ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡violate ¡the ¡AVL ¡height ¡invariant) ¡
z ¡ h+1 ¡ h ¡ h-‑2 ¡
z ¡ h+1 ¡ x ¡ h ¡ h-‑2 ¡ h-‑1 ¡ h-‑1 ¡ z ¡ h+1 ¡ h ¡ h-‑2 ¡ z ¡ h+1 ¡ x ¡ h ¡ h-‑2 ¡ h-‑2 ¡ h-‑1 ¡ h+1 ¡ z ¡ x ¡ h+1 ¡ h ¡ h-‑2 ¡ x ¡ h-‑3 ¡ h ¡ h-‑2 ¡ h-‑1 ¡ h-‑1 ¡ h-‑2 ¡
z ¡ h+1 ¡ x ¡ h ¡ h-‑2 ¡ h-‑1 ¡ h-‑1 ¡ z ¡ h+1 ¡ h ¡ h-‑2 ¡ z ¡ h+1 ¡ x ¡ h ¡ h-‑2 ¡ h-‑2 ¡ h-‑1 ¡ z ¡ h+1 ¡ x ¡ h ¡ h-‑2 ¡ h-‑1 ¡ h-‑2 ¡
z ¡ x ¡ h+1 ¡ h+1 ¡ z ¡ x ¡ h ¡ h-‑2 ¡ h ¡ h-‑1 ¡ h-‑1 ¡ h-‑1 ¡ rotate ¡right ¡at ¡z ¡ h-‑2 ¡ h-‑1 ¡ B ¡ z ¡ h+1 ¡ x ¡ h ¡ x ¡ h ¡ h-‑2 ¡ z ¡ h-‑1 ¡ rotate ¡right ¡at ¡z ¡ h-‑2 ¡ h-‑1 ¡ h-‑1 ¡ h-‑2 ¡ h-‑2 ¡ z ¡ h+1 ¡ x ¡ h ¡ h-‑2 ¡ h-‑1 ¡ h-‑2 ¡
z ¡ x ¡ h+1 ¡ h+1 ¡ z ¡ x ¡ h ¡ h-‑2 ¡ h ¡ h-‑1 ¡ h-‑1 ¡ h-‑1 ¡ rotate ¡right ¡at ¡z ¡ h-‑2 ¡ h-‑1 ¡ B ¡ z ¡ h+1 ¡ x ¡ h ¡ x ¡ h ¡ h-‑2 ¡ z ¡ h-‑1 ¡ rotate ¡right ¡at ¡z ¡ h-‑2 ¡ h-‑1 ¡ h-‑1 ¡ h-‑2 ¡ h-‑2 ¡ z ¡ x ¡ h+1 ¡ h+1 ¡ z ¡ x ¡ h ¡ h-‑2 ¡ h ¡ rotate ¡right ¡at ¡z ¡ h-‑2 ¡ h-‑1 ¡ h-‑2 ¡ h-‑1 ¡ h-‑2 ¡ B ¡
z ¡ h+1 ¡ x ¡ h ¡ h-‑2 ¡ h-‑1 ¡ h-‑2 ¡
z ¡ h+1 ¡ x ¡ h ¡ y ¡ h-‑1 ¡ h-‑2 ¡ h-‑2 ¡ z ¡ h+1 ¡ x ¡ h ¡ h-‑2 ¡ h-‑1 ¡ h-‑2 ¡
z ¡ z ¡ h+1 ¡ h+1 ¡ y ¡ x ¡ h ¡ h ¡ y ¡ x ¡ h-‑1 ¡ h-‑1 ¡ h-‑2 ¡ h-‑2 ¡ h-‑2 ¡ h-‑2 ¡ or ¡ h-‑2 ¡ h-‑3 ¡ h-‑2 ¡ or ¡ h-‑3 ¡ rotate ¡le2 ¡at ¡x ¡
z ¡ z ¡ h+1 ¡ h+1 ¡ y ¡ h ¡ y ¡ x ¡ h ¡ h ¡ x ¡ z ¡ y ¡ h-‑1 ¡ x ¡ h-‑1 ¡ h-‑1 ¡ h-‑1 ¡ h-‑2 ¡ h-‑2 ¡ h-‑2 ¡ h-‑2 ¡ or ¡ h-‑3 ¡ ¡and ¡h-‑2 ¡ h-‑2 ¡ h-‑2 ¡ h-‑2 ¡ h-‑3 ¡ or ¡ h-‑2 ¡ or ¡ h-‑2 ¡and ¡h-‑3 ¡ h-‑3 ¡ rotate ¡le2 ¡at ¡x ¡ rotate ¡right ¡at ¡z ¡
z ¡ x ¡ h+1 ¡ h+1 ¡ z ¡ x ¡ h ¡ h-‑2 ¡ h ¡ h-‑1 ¡ h-‑1 ¡ single ¡rota7on ¡ h-‑2 ¡ h-‑1 ¡ h-‑1 ¡ B ¡ z ¡ h+1 ¡ x ¡ h ¡ x ¡ h ¡ h-‑2 ¡ z ¡ h-‑1 ¡ single ¡rota7on ¡ h-‑2 ¡ h-‑1 ¡ h-‑1 ¡ h-‑2 ¡ h-‑2 ¡ z ¡ h+1 ¡ y ¡ h ¡ x ¡ h ¡ x ¡ z ¡ y ¡ double ¡rota7on ¡ h-‑1 ¡ h-‑1 ¡ h-‑1 ¡ h-‑2 ¡ h-‑2 ¡ ¡ ¡h-‑3 ¡ ¡ ¡h-‑3 ¡ h-‑2 ¡ h-‑2 ¡ or ¡h-‑2 ¡ or ¡h-‑2 ¡
Recommend
More recommend