Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- insertAVLTree_ :: a (LH a) -> LH a | Eq, Ord a
- insertAVLTree_ e (Leaf) = (Node 0 e Leaf Leaf)
- insertAVLTree_ e (Node d x left right)
- | e <= x = repair1 (Node d x (insertAVLTree_ e left) right)
- with repair1 newt =: (Node _ _ newl =: (Node _ r _ _) _)
- | depth newl - depth right <> 2 = newt
- | e < r = rotateR newt
- | otherwise = rotateRL newt
- | otherwise = repair2 (Node d x left (insertAVLTree_ e right))
- with repair2 newt =: (Node _ _ _ newr =: (Node _ r _ _))
- | depth newr - depth left <> 2 = newt
- | e > r = rotateL newt
- | otherwise = rotateLR newt
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement