AVL Example

Preview:

Citation preview

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      1

IKI10400 • Struktur Data & Algoritma:

Fakultas Ilmu Komputer • Universitas Indonesia

Slide acknowledgments:Bayu DistiawanTim dosen:

Ruli Manurung, Tisha Melia , Bayu Distiawan , Clara Vania , Zaki Rahman 

AVL Tree Example Operation

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      2

Gambarkan step by step hasil operasi berikut:

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

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      3

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

10

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      4

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

10

85

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      5

Insert 15, 70, 20, 60, 30, 50, 65, 80, 90, 40, 5, 55

10

85

15

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      6

Insert 15, 70, 20, 60, 30, 50, 65, 80, 90, 40, 5, 55

10

85

15

Double rotation right 

left

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      7

Insert 15, 70, 20, 60, 30, 50, 65, 80, 90, 40, 5, 55

10

15

85

Double rotation right 

left

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      8

Insert 15, 70, 20, 60, 30, 50, 65, 80, 90, 40, 5, 55

15

8510

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      9

Insert 70, 20, 60, 30, 50, 65, 80, 90, 40, 5, 55

15

8510

70

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      10

Insert 20, 60, 30, 50, 65, 80, 90, 40, 5, 55

15

8510

70

20

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      11

Insert 20, 60, 30, 50, 65, 80, 90, 40, 5, 55

15

8510

70

20

Single rotation right

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      12

Insert 20, 60, 30, 50, 65, 80, 90, 40, 5, 55

15

7010

20 85

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      13

Insert 60, 30, 50, 65, 80, 90, 40, 5, 55

15

7010

20 85

60

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      14

Insert 60, 30, 50, 65, 80, 90, 40, 5, 55

15

7010

20 85

60

Double rotation right 

left

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      15

Insert 60, 30, 50, 65, 80, 90, 40, 5, 55

15

2010

85

70

60

Double rotation right 

left

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      16

Insert 60, 30, 50, 65, 80, 90, 40, 5, 55

20

7015

856010

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      17

Insert 30, 50, 65, 80, 90, 40, 5, 55

20

7015

856010

30

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      18

Insert 50, 65, 80, 90, 40, 5, 55

20

7015

856010

30

50

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      19

Insert 50, 65, 80, 90, 40, 5, 55

20

7015

856010

30

50

Double rotation left 

right

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      20

Insert 50, 65, 80, 90, 40, 5, 55

20

7015

856010

50

30

Double rotation left 

right

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      21

Insert 50, 65, 80, 90, 40, 5, 55

20

7015

855010

30 60

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      22

Insert 65, 80, 90, 40, 5, 55

20

7015

855010

30 60

65

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      23

Insert 65, 80, 90, 40, 5, 55

20

7015

855010

30 60

65

Double rotation left 

right

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      24

Insert 65, 80, 90, 40, 5, 55

20

7015

856010

50 65

30

Double rotation left 

right

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      25

Insert 65, 80, 90, 40, 5, 55

20

15

705010

30 65 85

60

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      26

Insert 80, 90, 40, 5, 55

20

15

705010

30 65 85

60

80

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      27

Insert 80, 90, 40, 5, 55

20

15

705010

30 65 85

60

80

Single rotation left

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      28

Insert 80, 90, 40, 5, 55

20 70

5015

30

65 85

80

Single rotation left

10

60

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      29

Insert 90, 40, 5, 55

20 70

5015

30

65 85

8010

60

90

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      30

Insert 40, 5, 55

20 70

5015

30

65 85

8010

60

90

40

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      31

Insert 40, 5, 55

20 70

5015

30

65 85

8010

60

90

40

Double rotation left 

right

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      32

Insert 40, 5, 55

20 70

5015

40

65 85

8010

60

90

30

Double rotation left 

right

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      33

Insert 40, 5, 55

20 70

15

30

65 85

8010

60

9050

Double rotation left 

right

40

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      34

Insert 5, 55

20 70

15

30

65 85

8010

60

9050

40

5

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      35

Insert 5, 55

20 70

15

30

65 85

8010

60

9050

40

5

Single rotation right

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      36

Insert 5, 55

20 70

30

65 85

805

60

9050

40

15

10

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      37

Insert 55

20 70

30

65 85

805

60

9050

40

15

10

55

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      38

AVL Trees: Latihan

Coba simulasikan urutan proses pada sebuah AVL Tree berikut ini

insert 10, 85, 15, 70, 20, 60, 30,

delete 15, 10,

insert 50, 65, 80,

delete 20, 60,

insert 90, 40, 5, 55

delete 70

Gambarkan kondisi akhir dari AVL Tree tersebut.

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      39

Insert 10, 85, 15, 70, 20, 60, 30

10

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      40

Insert 85, 15, 70, 20, 60, 30

10

85

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      41

Insert 15, 70, 20, 60, 30

10

85

15

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      42

Insert 15, 70, 20, 60, 30

10

85

15

Double rotation right 

left

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      43

Insert 15, 70, 20, 60, 30

10

15

85

Double rotation right 

left

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      44

Insert 15, 70, 20, 60, 30

15

8510

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      45

Insert 70, 20, 60, 30

15

8510

70

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      46

Insert 20, 60, 30

15

8510

70

20

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      47

Insert 20, 60, 30

15

8510

70

20

Single rotation right

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      48

Insert 20, 60, 30

15

7010

20 85

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      49

Insert 60, 30

15

7010

20 85

60

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      50

Insert 60, 30

15

7010

20 85

60

Double rotation right 

left

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      51

Insert 60, 30

15

2010

85

70

60

Double rotation right 

left

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      52

Insert 60, 30

20

7015

856010

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      53

Insert 30

20

7015

856010

30

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      54

Delete 15, 10

20

7015

856010

30

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      55

Delete 15, 10

20

7010

8560

30

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      56

Delete 15, 10

20

7010

8560

30

Double rotation right 

left

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      57

Delete 15, 10

20

6010

7030

Double rotation right 

left

85

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      58

Delete 15, 10

60

20 70

30

Double rotation right 

left

8510

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      59

Delete 10

60

20 70

30 85

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      60

Insert 50, 65, 80

60

20 70

30 85

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      61

Insert 50, 65, 80

60

20 70

30 85

50

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      62

Insert 50, 65, 80

60

20 70

30 85

50

Single rotation left

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      63

Insert 50, 65, 80

60

70

50 8520

Single rotation left30

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      64

Insert 65, 80

60

70

50 8520

30

65

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      65

Insert 80

60

70

50 8520

30

65

80

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      66

Delete 20, 60

60

70

50 8520

30

65

80

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      67

Delete 20, 60

60

70

50 85

30

65

80

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      68

Delete 60

70

50 85

30

65

80

Gantikandengan

predecessor inordernya

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      69

Delete 60

70

50 8565

80

Gantikandengan

predecessor inordernya

30

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      70

Delete 60

50

7030

8565

80

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      71

Delete 60

50

7030

8565

80

Single rotation left

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      72

Delete 60

70

50 85

65 80

Single rotation left

30

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      73

Insert 90, 40, 5, 55

70

50 85

65 8030

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      74

Insert 90, 40, 5, 55

70

50 85

65 8030 90

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      75

Insert 40, 5, 55

70

50 85

65 8030 90

40

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      76

Insert 5, 55

70

50 85

65 8030 90

405

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      77

Insert 55

70

50 85

65 8030 90

405 55

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      78

Delete 70

70

50 85

65 8030 90

405 55

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      79

Delete 70

50 85

65 8030 90

405 55

Gantikandengan

predecessor inordernya

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      80

Delete 70

50 85

65 8030 90

405 55

Gantikandengan

predecessor inordernya

Fasilkom UI • IKI10400 Struktur Data & Algoritma 2010/11 • Genap • Kuliah 10      81

Delete 70

65

50 85

8030 90

405

55

Recommended