avl tree

39
AVL Tree 27 th Mar 2007

Upload: raja-mckay

Post on 31-Dec-2015

20 views

Category:

Documents


2 download

DESCRIPTION

AVL Tree. Outline. AVL Tree Definition Properties Operations. AVL Trees. Unbalanced Binary Search Trees are bad. Worst case: operations take O(n). AVL (Adelson-Velskii & Landis) trees maintain balance. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: AVL Tree

AVL Tree

27th Mar 2007

Page 2: AVL Tree

Outline

• AVL Tree– Definition– Properties– Operations

27th Mar 2007

Page 3: AVL Tree

AVL Trees• Unbalanced Binary Search Trees are bad. Worst

case: operations take O(n).• AVL (Adelson-Velskii & Landis) trees maintain

balance.• For each node in tree, height of left subtree and

height of right subtree differ by a maximum of 1.

27th Mar 2007

X X

H

H-1H-2

Page 4: AVL Tree

AVL Trees

27th Mar 2007

10

5

3

20

2

1 3

10

5

3

20

1

43

5

Page 5: AVL Tree

AVL Trees

27th Mar 2007

12

8 16

4 10

2 6

14

Page 6: AVL Tree

Insertion for AVL Tree• After insert 1

27th Mar 2007

12

8 16

4 10

2 6

14

1

Page 7: AVL Tree

Insertion for AVL Tree

• To ensure balance condition for AVL-tree, after insertion of a new node, we back up the path from the inserted node to root and check the balance condition for each node.

• If after insertion, the balance condition does not hold in a certain node, we do one of the following rotations:– Single rotation– Double rotation

27th Mar 2007

Page 8: AVL Tree

12/26/03 8

Let the node that needs rebalancing be .

There are 4 cases: Outside Cases (require single rotation) : 1. Insertion into left subtree of left child of . 2. Insertion into right subtree of right child of . Inside Cases (require double rotation) : 3. Insertion into right subtree of left child of . 4. Insertion into left subtree of right child of .

The rebalancing is performed through four separate rotation algorithms.

Insertions in AVL Trees

Page 9: AVL Tree

Insertions Causing Imbalance

• An insertion into the subtree:– P (outside) - case 1– Q (inside) - case 2

• An insertion into the subtree:– Q (inside) - case 3– R (outside) - case 4

27th Mar 2007

RP

Q

k1

k2

Q

k2

P

k1

R

HP=HQ=HR

Page 10: AVL Tree

Single Rotation (case 1)

27th Mar 2007

A

k2

B

k1

CCBA

k1

k2

HA=HB+1HB=HC

Page 11: AVL Tree

Single Rotation (case 4)

27th Mar 2007

C

k1

B

k2

AA B C

k2

k1

HA=HB

HC=HB+1

Page 12: AVL Tree

Problem with Single Rotation• Single rotation does not work for case 2 and 3

(inside case)

27th Mar 2007

Q

k2

P

k1

RR

P

Q

k1

k2

HQ=HP+1HP=HR

Page 13: AVL Tree

Double Rotation: Step

27th Mar 2007

C

k3

A

k1

D

B

k2

C

k3

A

k1

D

B

k2

HA=HB=HC=HD

Page 14: AVL Tree

Double Rotation: Step

27th Mar 2007

C

k3

A

k1

DB

k2

Page 15: AVL Tree

Double Rotation

27th Mar 2007

C

k3

A

k1

D

B

k2

C

k3

A

k1

DB

k2

HA=HB=HC=HD

Page 16: AVL Tree

Double Rotation

27th Mar 2007

B

k1

D

k3

A

C

k2

B

k1

D

k3

A C

k2

HA=HB=HC=HD

Page 17: AVL Tree

Example• Insert 3 into the AVL tree

27th Mar 2007

3

11

8 20

4 16 27

8

8

11

4 20

3 16 27

Page 18: AVL Tree

Example• Insert 5 into the AVL tree

27th Mar 2007

5

11

8 20

4 16 27 8

11

5 20

4 16 27

8

Page 19: AVL Tree

AVL Trees: Exercise

• Insertion order:– 10, 85, 15, 70, 20, 60, 30, 50, 65, 80, 90, 40, 5, 55

27th Mar 2007

Page 20: AVL Tree

Remove Operation in AVL Tree

• Removing a node from an AVL Tree is the same as removing from a binary search tree. However, it may unbalance the tree.

• Similar to insertion, starting from the removed node we check all the nodes in the path up to the root for the first unbalance node.

• Use the appropriate single or double rotation to balance the tree.

• May need to continue searching for unbalanced nodes all the way to the root.

27th Mar 2007

Page 21: AVL Tree

Deletion X in AVL Trees

• Deletion:– Case 1: if X is a leaf, delete X– Case 2: if X has 1 child, use it to replace X– Case 3: if X has 2 children, replace X with its

inorder predecessor (and recursively delete it)

• Rebalancing

27th Mar 2007

Page 22: AVL Tree

Delete 55 (case 1)

27th Mar 2007

60

20 70

10 40 65 85

5 15 30 50 80 90

55

Page 23: AVL Tree

Delete 55 (case 1)

27th Mar 2007

60

20 70

10 40 65 85

5 15 30 50 80 90

55

Page 24: AVL Tree

Delete 50 (case 2)

27th Mar 2007

60

20 70

10 40 65 85

5 15 30 50 80 90

55

Page 25: AVL Tree

Delete 50 (case 2)

27th Mar 2007

60

20 70

10 40 65 85

5 15 30 50 80 90

55

Page 26: AVL Tree

Delete 60 (case 3)

27th Mar 2007

60

20 70

10 40 65 85

5 15 30 50 80 90

55

prev

Page 27: AVL Tree

Delete 60 (case 3)

27th Mar 2007

55

20 70

10 40 65 85

5 15 30 50 80 90

Page 28: AVL Tree

Delete 55 (case 3)

27th Mar 2007

55

20 70

10 40 65 85

5 15 30 50 80 90

prev

Page 29: AVL Tree

Delete 55 (case 3)

27th Mar 2007

50

20 70

10 40 65 85

5 15 30 80 90

Page 30: AVL Tree

Delete 50 (case 3)

27th Mar 2007

50

20 70

10 40 65 85

5 15 30 80 90

prev

Page 31: AVL Tree

Delete 50 (case 3)

27th Mar 2007

40

20 70

10 30 65 85

5 15 80 90

Page 32: AVL Tree

Delete 40 (case 3)

27th Mar 2007

40

20 70

10 30 65 85

5 15 80 90

prev

Page 33: AVL Tree

Delete 40 : Rebalancing

27th Mar 2007

30

20 70

10 65 85

5 15 80 90

Case ?

Page 34: AVL Tree

Delete 40: after rebalancing

27th Mar 2007

30

7010

20 65 855

15 80 90

Single rotation is preferred!

Page 35: AVL Tree

Minimum Element in AVL Tree• An AVL Tree of height H has at least FH+3-1 nodes,

where Fi is the i-th fibonacci number• S0 = 1• S1 = 2• SH = SH-1 + SH-2 + 1

27th Mar 2007

SH-1SH-2

H

H-1H-2

Page 36: AVL Tree

AVL Tree: analysis (1)

27th Mar 2007

328.1)2log(44.1

5/φ

)(

618.12/)5(1φ

5/φ

3H

i

NH

roughlyleastathasHheightofTreeAVL

Fi

Page 37: AVL Tree

AVL Tree: analysis (2)• The depth of AVL Trees is at most logarithmic.• So, all of the operations on AVL trees are also

logarithmic.• The worst-case height is at most 44 percent more

than the minimum possible for binary trees.

27th Mar 2007

Page 38: AVL Tree

Summary

• Find element, insert element, and remove element operations all have complexity O(log n) for worst case

• Insert operation: top-down insertion and bottom up balancing

27th Mar 2007

Page 39: AVL Tree

Further Study

• http://telaga.cs.ui.ac.id/WebKuliah/IKI10100/resources/animation/data-structure/avl/avltree.html

• Section 19.4 of Weiss book

27th Mar 2007