avl tree smt genap 2011-2012. outline avl tree ◦ definition ◦ properties ◦ operations smt...

Post on 14-Dec-2015

223 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

AVL TreeAVL Tree

Smt Genap 2011-2012

OutlineOutlineAVL Tree

◦Definition◦Properties◦Operations

Smt Genap 2011-2012

AVL TreesAVL TreesUnbalanced 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.

Smt Genap 2011-2012

X X

H

H-1H-2

AVL TreesAVL Trees

Smt Genap 2011-2012

10

5

3

20

2

1 3

10

5

3

20

1

43

5

AVL TreesAVL Trees

Smt Genap 2011-2012

12

8 16

4 10

2 6

14

Insertion for AVL TreeInsertion for AVL TreeAfter insert 1

Smt Genap 2011-2012

12

8 16

4 10

2 6

14

1

Insertion for AVL TreeInsertion for AVL TreeTo 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

Smt Genap 2011-2012

Insertions Causing Insertions Causing ImbalanceImbalance

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

Smt Genap 2011-2012

RP

Q

k1

k2

Q

k2

P

k1

R

HP=HQ=HR

Single Rotation (case 1)Single Rotation (case 1)

Smt Genap 2011-2012

A

k2

B

k1

CCBA

k1

k2

HA=HB+1HB=HC

Single Rotation (case 4)Single Rotation (case 4)

Smt Genap 2011-2012

C

k1

B

k2

AA B C

k2

k1

HA=HB

HC=HB+1

Problem with Single Problem with Single RotationRotationSingle rotation does not work for case

2 and 3 (inside case)

Smt Genap 2011-2012

Q

k2

P

k1

RR

P

Q

k1

k2

HQ=HP+1HP=HR

Double Rotation: StepDouble Rotation: Step

Smt Genap 2011-2012

C

k3

A

k1

D

B

k2

C

k3

A

k1

D

B

k2

HA=HB=HC=HD

Double Rotation: StepDouble Rotation: Step

Smt Genap 2011-2012

C

k3

A

k1

DB

k2

Double RotationDouble Rotation

Smt Genap 2011-2012

C

k3

A

k1

D

B

k2

C

k3

A

k1

DB

k2

HA=HB=HC=HD

Double RotationDouble Rotation

Smt Genap 2011-2012

B

k1

D

k3

A

C

k2

B

k1

D

k3

A C

k2

HA=HB=HC=HD

ExampleExampleInsert 3 into the AVL tree

Smt Genap 2011-2012

3

11

8 20

4 16 27

8

8

11

4 20

3 16 27

ExampleExampleInsert 5 into the AVL tree

Smt Genap 2011-2012

5

11

8 20

4 16 27 8

11

5 20

4 16 27

8

AVL Trees: ExerciseAVL Trees: ExerciseInsertion order:

◦10, 85, 15, 70, 20, 60, 30, 50, 65, 80, 90, 40, 5, 55

Smt Genap 2011-2012

Remove Operation in AVL Remove Operation in AVL TreeTreeRemoving 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.

Smt Genap 2011-2012

Deletion X in AVL TreesDeletion X in AVL TreesDeletion:

◦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

Smt Genap 2011-2012

Delete 55 (case 1)Delete 55 (case 1)

Smt Genap 2011-2012

60

20 70

10 40 65 85

5 15 30 50 80 90

55

Delete 55 (case 1)Delete 55 (case 1)

Smt Genap 2011-2012

60

20 70

10 40 65 85

5 15 30 50 80 90

55

Delete 50 (case 2)Delete 50 (case 2)

Smt Genap 2011-2012

60

20 70

10 40 65 85

5 15 30 50 80 90

55

Delete 50 (case 2)Delete 50 (case 2)

Smt Genap 2011-2012

60

20 70

10 40 65 85

5 15 30 50 80 90

55

Delete 60 (case 3)Delete 60 (case 3)

Smt Genap 2011-2012

60

20 70

10 40 65 85

5 15 30 50 80 90

55

prev

Delete 60 (case 3)Delete 60 (case 3)

Smt Genap 2011-2012

55

20 70

10 40 65 85

5 15 30 50 80 90

Delete 55 (case 3)Delete 55 (case 3)

Smt Genap 2011-2012

55

20 70

10 40 65 85

5 15 30 50 80 90

prev

Delete 55 (case 3)Delete 55 (case 3)

Smt Genap 2011-2012

50

20 70

10 40 65 85

5 15 30 80 90

Delete 50 (case 3)Delete 50 (case 3)

Smt Genap 2011-2012

50

20 70

10 40 65 85

5 15 30 80 90

prev

Delete 50 (case 3)Delete 50 (case 3)

Smt Genap 2011-2012

40

20 70

10 30 65 85

5 15 80 90

Delete 40 (case 3)Delete 40 (case 3)

Smt Genap 2011-2012

40

20 70

10 30 65 85

5 15 80 90

prev

Delete 40 : RebalancingDelete 40 : Rebalancing

Smt Genap 2011-2012

30

20 70

10 65 85

5 15 80 90

Case ?

Delete 40: after Delete 40: after rebalancingrebalancing

Smt Genap 2011-2012

30

7010

20 65 855

15 80 90

Single rotation is preferred!

Minimum Element in AVL Minimum Element in AVL TreeTreeAn AVL Tree of height H has at least FH+3-1

nodes, where Fi is the i-th fibonacci numberS0 = 1S1 = 2SH = SH-1 + SH-2 + 1

Smt Genap 2011-2012

SH-1SH-2

H

H-1H-2

AVL Tree: analysis (2)AVL Tree: analysis (2)The depth of AVL Trees is at most

logarithmic.So, all of the operations on AVL trees

are also logarithmic.

Smt Genap 2011-2012

SummarySummaryFind 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

Smt Genap 2011-2012

Further StudyFurther StudySection 19.4 of Weiss book

Smt Genap 2011-2012

top related