การหมุนต้นไม้ เพื่อให้คงสภาพ Balance Tree (AVL Tree)
การหมุนเพื่อคงสภาพ AVL Tree สมมุติต้นไม้ Binary Search Tree ขึ้นมา 1 ต้น ที่อยู่ในสภาพ balance และสมมุติโหนด p เป็นโหนดที่อาจจะต้องถูก rebalance เนื่องมีโหนดใหม่ถูกเพิ่มเข้ามาเป็นลูกของ subtree ด้านซ้าย หรือ subtree ด้านขวา เช่น ถ้าสมมุติ Binary Search Tree ไว้ดังภาพนี้ เราจะต้องทำการ rebalance ก็ต่อเมื่อ Height ด้านซ้ายของ p แตกต่างจาก Height ด้านขวาของ p มากกว่า 2 เช่นแบบนี้ แต่ถ้าความสูง (height) แตกต่างกันน้อยกว่า 2 (เช่น 0 หรือ 1) เราจะไม่ต้องทำการ rebalance เพราะฉะนั้นกรณีที่จะทำให้เราต้อง rebalance โหนด p มีอยู่ 4 กรณีคือ กรณี 1 เพิ่มโหนดใหม่เข้าไปที่ subtree ด้านซ้าย ของโหนดลูกด้านซ้ายของ p ( สมมุติ n เป็นโหนดใหม่) กรณี 2 เพิ่มโหนดใหม่เข้าไปที่ subtree ด้านขวา ของโหนดลูกด้านซ้ายของ p กรณี 3 เพิ่มโหนดใหม่เข้าไปที่ subtree ด้านซ้ายของโหนดลูกด้านขวาของ p กรณี 4 เพิ่มโหนดใหม่เข้าไปที่ subtree ด้านขวาของโหนดลูกด้านขวาของ p ทั้ง 4 กรณีนี้อาจจะทำให้ length ด้านซ้ายมีความยาวต่างกับ length ด้านขวาเท่ากับ 2 ก็ได้ แต่กรณีที่ 1