AVL Tree

1 / 25

# AVL Tree - PowerPoint PPT Presentation

AVL Tree. Chapter 8 ( cont ’)Part3. Search Trees. Two standard search trees : Binary Search Trees (non-balanced ) All items in left sub-tree are less than root All items in right sub-tree are greater than or equal to the root Each sub-tree is a binary search tree AVL trees (balanced ).

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

## AVL Tree

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

### AVL Tree

Chapter 8 (cont’)Part3

Search Trees
• Two standard search trees:
• Binary Search Trees (non-balanced)
• All items in left sub-tree are less than root
• All items in right sub-tree are greater than or equal to the root
• Each sub-tree is a binary search tree
• AVL trees (balanced)
BST Traversals
• A preorder traversal of the BST produces:

23 18 12 20 44 35 52

• A postordertraversal of the BST produces:

12 20 18 35 52 44 23

• An inorder traversal of the BST produces:

12 18 20 23 35 44 52 (a sorted list!)

2- AVL Trees

• Invented by Adelson-Velskii and Landis
• Height-balanced binary search tree where the heights of sub-trees differ by no more than 1:
• | HL – HR | <= 1
• Search effort for an AVL tree is O(log2n)
• Each node has a balance factor
• Balance factors may be:
• Left High (LH) = +1 (left sub-tree higher than right sub-tree)
• Even High (EH) = 0 (left and right sub-trees same height)
• Right High (RH) = -1 (right sub-tree higher than left sub-tree)
Balancing Trees
• Insertions and deletions potentially cause a tree to be imbalanced
• When a tree is detected as unbalanced, nodes are balanced by rotating nodes to the left or right
• Four imbalance cases:
• Left of left: the sub-tree of a left high tree has become left high
• Right of right: the sub-tree of a right high tree has become right high
• Right of left: the sub-tree of a left high tree has become right high
• Left of right: the sub-tree of a right high tree has become left high
• Each imbalance case has simple and complex rotation cases
Case 1: Left of Left
• The sub-tree of a left high tree has become left high
• Simple right rotation: Rotate the out of balance node (the root) to the right
• Complex right rotation: Rotate root to the right, so the old root is the right sub-tree of the new root; the new root's right sub-tree is connected to the old root's left sub-tree

Case 2: Right of Right

• Mirror of Case 1: The sub-tree of a right high tree has become right high
• Simple left rotation: Rotate the out of balance node (the root) to the left
• Complex left rotation: Rotate root to the left, so the old root is the left sub-tree of the new root; the new root's left sub-tree is connected to the old root's right sub-tree

Case 3: Right of Left

• The sub-tree of a left high tree has become right high
• Simple double rotation right: Rotate left sub-tree to the left; rotate root to the right, so the old root's left node is the new root
• Complex double rotation right: Rotate the right-high left sub-tree to the left; rotate the left-high left sub-tree to the right

Case 4: Left of Right

• Mirror of Case 3: The sub-tree of a right high tree has become left high
• Simple double rotation right: Rotate right sub-tree to the right; rotate root to the left, so the old root's right node is the new root
• Complex double rotation right: Rotate the left-high right sub-tree to the right; rotate the right-high right sub-tree to the left
AVL Node Structure

Node

key <keyType>

data <dataType>

Left <pointer to Node>

right <pointer to Node>

bal <LH, EH, RH> // Balance factor

End Node

multiway search tree

• A tree was defined as either an empty structure or a structure whose children are disjoint trees.
• This means that each node in some kind of trees can have more than two children.
• This tree is called a multiway tree of order m, or m-way tree
multiway search tree
• A multiway search tree of order m is a multiway tree in which :
• Each node has m children and m-1 keys.
• The keys in each node are in ascending order.
• The keys in the first i children are smaller than the ith key.
• The keys in the last m-i children are larger than the ith key.

B-Tree

• B- Trees operates closely with secondary storage.
• Property: the size of a node can be made as large as a block.
• A B- tree of order m is a multi way search tree with the following properties:
• The root has at least two subtrees unless it is a leaf.
• Each nonroot and each nonleaf node holds k-1 keys and k pointers to subtrees where [m/2] ≤ k ≤ m.
• Each leaf node holds k-1 keys where [m/2] ≤ k ≤ m.
• All leaves are usually on the same level.
End Of Chapter

References:

Text book, chapter 8: Binary Trees