computer notes - Data Structures - 20

Page 1

Class No.20 Data Structures http://ecomputernotes.com


AVL Tree  AVL (Adelson-Velskii and Landis) tree.  An AVL tree is identical to a BST except  height of the left and right subtrees can differ by at most 1.  height of an empty tree is defined to be (–1).

http://ecomputernotes.com


AVL Tree  An AVL Tree

height 0

5 2

1

8

4

7

3

http://ecomputernotes.com

1

2 3


AVL Tree  Not an AVL tree

height 0

6 1

1

8

4 3

1

2 5

http://ecomputernotes.com

3


Balanced Binary Tree  The height of a binary tree is the maximum level of its leaves (also called the depth).  The balance of a node in a binary tree is defined as the height of its left subtree minus height of its right subtree.  Here, for example, is a balanced tree. Each node has an indicated balance of 1, 0, or –1. http://ecomputernotes.com


Balanced Binary Tree -1 1 0 0

0 -1

1

0 0

0 0

0 0

0

0 0

http://ecomputernotes.com

0


Balanced Binary Tree Insertions and effect on balance -1 1

0

0 0 U1

0 U2

U3

B

-1

1

0 0

B

0

U4 U5

0 U6

0

0

U7

B U8

B

B

0 B

0

U9

http://ecomputernotes.com

0 U10

U11

U12


Balanced Binary Tree  Tree becomes unbalanced only if the newly inserted node  is a left descendant of a node that previously had a balance of 1 (U1 to U8),  or is a descendant of a node that previously had a balance of –1 (U9 to U12)

http://ecomputernotes.com


Balanced Binary Tree Insertions and effect on balance -1 1

0

0 0 U1

0 U2

U3

B

-1

1

0 0

B

0

U4 U5

0 U6

0

0

U7

B U8

B

B

0 B

0

U9

http://ecomputernotes.com

0 U10

U11

U12


Balanced Binary Tree Consider the case of node that was previously 1 -1 1

0

0 0 U1

0 U2

U3

B

-1

1

0 0

B

0

U4 U5

0 U6

0

0

U7

B U8

B

B

0 B

0

U9

http://ecomputernotes.com

0 U10

U11

U12


Inserting New Node in AVL Tree A 1

B 0 T3 T1

T2

1

http://ecomputernotes.com


Inserting New Node in AVL Tree A 2

B 1 T3 T1

T2

1 2

new

http://ecomputernotes.com


Inserting New Node in AVL Tree A 2

B 0

B 1

0 T1

T3 T1

1

T2

T2 2

new

new

Inorder: T1 B T2 A T3

A

Inorder: T1 B T2 A T3

http://ecomputernotes.com

T3


AVL Tree Building Example  Let us work through an example that inserts numbers in a balanced search tree.  We will check the balance after each insert and rebalance if necessary using rotations.

http://ecomputernotes.com


AVL Tree Building Example Insert(1) 1

http://ecomputernotes.com


AVL Tree Building Example Insert(2) 1 2

http://ecomputernotes.com


AVL Tree Building Example Insert(3) single left rotation 1

2

2

3

http://ecomputernotes.com


AVL Tree Building Example Insert(3) single left rotation 1

2

2

3

http://ecomputernotes.com


AVL Tree Building Example Insert(3) 2 1

3

http://ecomputernotes.com


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.