Rebalancing AVL trees Rebalancing AVL trees z h+1 h - - PowerPoint PPT Presentation
Rebalancing AVL trees Rebalancing AVL trees z h+1 h - - PowerPoint PPT Presentation
Rebalancing AVL trees Rebalancing AVL trees z h+1 h h-2 z h+1 h h-2 (the red nodes violate the AVL
h+1 ¡ h ¡ h-‑2 ¡ h+1 ¡ h-‑2 ¡ h ¡ (the ¡red ¡nodes ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡violate ¡the ¡AVL ¡height ¡invariant) ¡ z ¡ z ¡
Rebalancing ¡AVL ¡trees ¡
h+1 ¡ h ¡ h-‑2 ¡ z ¡
h+1 ¡ h ¡ h-‑2 ¡ h-‑1 ¡ h-‑3 ¡ h ¡ h-‑2 ¡ h-‑1 ¡ h-‑2 ¡ h+1 ¡ h ¡ h-‑2 ¡ h-‑2 ¡ h-‑1 ¡ h+1 ¡ h ¡ h-‑2 ¡ h-‑1 ¡ h-‑1 ¡ h+1 ¡ z ¡ z ¡ z ¡ x ¡ x ¡ x ¡ x ¡ h+1 ¡ h ¡ h-‑2 ¡ z ¡
h ¡ h-‑2 ¡ h-‑1 ¡ h-‑2 ¡ h+1 ¡ h ¡ h-‑2 ¡ h-‑2 ¡ h-‑1 ¡ h+1 ¡ h ¡ h-‑2 ¡ h-‑1 ¡ h-‑1 ¡ h+1 ¡ z ¡ z ¡ z ¡ x ¡ x ¡ x ¡ h+1 ¡ h ¡ h-‑2 ¡ z ¡
h ¡ h-‑2 ¡ h-‑1 ¡ h-‑2 ¡ h+1 ¡ h ¡ h-‑2 ¡ h-‑2 ¡ h-‑1 ¡ h+1 ¡ h ¡ h-‑2 ¡ h-‑1 ¡ h-‑1 ¡ h+1 ¡ h+1 ¡ h ¡ h-‑2 ¡ h-‑1 ¡ h-‑1 ¡ B ¡ x ¡ z ¡ z ¡ z ¡ z ¡ x ¡ x ¡ x ¡ h ¡ h-‑1 ¡ h-‑2 ¡ h-‑1 ¡ h-‑2 ¡ x ¡ z ¡ rotate ¡right ¡at ¡z ¡ rotate ¡right ¡at ¡z ¡
h ¡ h-‑2 ¡ h-‑1 ¡ h-‑2 ¡ h+1 ¡ h ¡ h-‑2 ¡ h-‑2 ¡ h-‑1 ¡ h+1 ¡ h ¡ h-‑2 ¡ h-‑1 ¡ h-‑1 ¡ h+1 ¡ rotate ¡right ¡at ¡z ¡ rotate ¡right ¡at ¡z ¡ h+1 ¡ h ¡ h-‑2 ¡ h-‑1 ¡ h-‑1 ¡ B ¡ x ¡ z ¡ z ¡ z ¡ z ¡ x ¡ x ¡ x ¡ h ¡ h-‑1 ¡ h-‑2 ¡ h-‑1 ¡ h-‑2 ¡ x ¡ z ¡ h+1 ¡ h ¡ h-‑2 ¡ h-‑1 ¡ B ¡ x ¡ z ¡ h-‑2 ¡ rotate ¡right ¡at ¡z ¡
h ¡ h-‑2 ¡ h-‑2 ¡ h-‑1 ¡ h+1 ¡ z ¡ x ¡
h ¡ h-‑2 ¡ h-‑2 ¡ h-‑1 ¡ h+1 ¡ z ¡ x ¡ h+1 ¡ h ¡ h-‑2 ¡ h-‑1 ¡ h-‑2 ¡ x ¡ y ¡ z ¡
h+1 ¡ h ¡ h-‑2 ¡ h-‑1 ¡ h-‑2 ¡ x ¡ y ¡ z ¡ h+1 ¡ h ¡ h-‑2 ¡ h-‑2 ¡ x ¡ y ¡ z ¡ h-‑1 ¡ h-‑2 ¡
- r ¡
h-‑3 ¡ h-‑2 ¡
- r ¡
h-‑3 ¡ rotate ¡le2 ¡at ¡x ¡
h+1 ¡ h ¡ h-‑2 ¡ h-‑1 ¡ h-‑2 ¡ x ¡ y ¡ z ¡ h+1 ¡ h ¡ h-‑2 ¡ h-‑2 ¡ x ¡ y ¡ z ¡ h-‑1 ¡ h-‑2 ¡
- r ¡
h-‑3 ¡ h-‑2 ¡
- r ¡
h-‑3 ¡ h-‑1 ¡ h ¡ h-‑2 ¡ h-‑2 ¡ x ¡ y ¡ z ¡ h-‑1 ¡ h-‑3 ¡ ¡and ¡h-‑2 ¡
- r ¡
h-‑2 ¡and ¡h-‑3 ¡ rotate ¡le2 ¡at ¡x ¡ rotate ¡right ¡at ¡z ¡
h ¡ h-‑2 ¡ h-‑1 ¡ h-‑2 ¡ h+1 ¡ h ¡ h-‑2 ¡ h-‑1 ¡ h-‑1 ¡ h+1 ¡ single ¡rota7on ¡ single ¡rota7on ¡ h+1 ¡ h ¡ h-‑2 ¡ h-‑1 ¡ h-‑1 ¡ B ¡ x ¡ z ¡ z ¡ z ¡ x ¡ x ¡ h ¡ h-‑1 ¡ h-‑2 ¡ h-‑1 ¡ h-‑2 ¡ x ¡ z ¡ h+1 ¡ h ¡ h-‑2 ¡ h-‑1 ¡ h-‑2 ¡ x ¡ y ¡ z ¡ double ¡rota7on ¡ h-‑1 ¡ h ¡ h-‑2 ¡ h-‑2 ¡ x ¡ y ¡ z ¡ h-‑1 ¡ ¡ ¡h-‑3 ¡
- r ¡h-‑2 ¡
¡ ¡h-‑3 ¡
- r ¡h-‑2 ¡