14 11 17 7 53 4 - University of Cyprus treeSolutions.pdf · ΕΠΛ 231 – Δομές...

22
AVL Tree Example: Insert 14, 17, 11, 7, 53, 4, 13 into an empty AVL tree 14 17 11 7 53 4

Transcript of 14 11 17 7 53 4 - University of Cyprus treeSolutions.pdf · ΕΠΛ 231 – Δομές...

Page 1: 14 11 17 7 53 4 - University of Cyprus treeSolutions.pdf · ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι Φροντιστήριο 7 1. Ξεκινώντας

AVL Tree Example:

• Insert 14, 17, 11, 7, 53, 4, 13 into an empty AVL tree

14

17 11

7 53

4

Page 2: 14 11 17 7 53 4 - University of Cyprus treeSolutions.pdf · ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι Φροντιστήριο 7 1. Ξεκινώντας

ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι

Φροντιστήριο 7

1. Ξεκινώντας με ένα άδειο AVL-δένδρο να εφαρμόσετε διαδοχικά εισαγωγή των στοιχείων

2, 1, 4, 5, 9, 3, 6, 7, 16, 0 δείχνοντας το αποτέλεσμα της κάθε μιας από τις εισαγωγές.

Page 3: 14 11 17 7 53 4 - University of Cyprus treeSolutions.pdf · ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι Φροντιστήριο 7 1. Ξεκινώντας

AVL Tree Example:

• Insert 14, 17, 11, 7, 53, 4, 13 into an empty AVL tree

14

17 7

4 53 11

13

Page 4: 14 11 17 7 53 4 - University of Cyprus treeSolutions.pdf · ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι Φροντιστήριο 7 1. Ξεκινώντας

AVL Tree Example:

• Now insert 12

14

17 7

4 53 11

13

12

Page 5: 14 11 17 7 53 4 - University of Cyprus treeSolutions.pdf · ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι Φροντιστήριο 7 1. Ξεκινώντας

AVL Tree Example:

• Now insert 12

14

17 7

4 53 11

12

13

Page 6: 14 11 17 7 53 4 - University of Cyprus treeSolutions.pdf · ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι Φροντιστήριο 7 1. Ξεκινώντας

AVL Tree Example:

• Now the AVL tree is balanced.

14

17 7

4 53 12

13 11

Page 7: 14 11 17 7 53 4 - University of Cyprus treeSolutions.pdf · ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι Φροντιστήριο 7 1. Ξεκινώντας

AVL Tree Example:

• Now insert 8

14

17 7

4 53 12

13 11

8

Page 8: 14 11 17 7 53 4 - University of Cyprus treeSolutions.pdf · ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι Φροντιστήριο 7 1. Ξεκινώντας

AVL Tree Example:

• Now insert 8

14

17 7

4 53 11

12 8

13

Page 9: 14 11 17 7 53 4 - University of Cyprus treeSolutions.pdf · ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι Φροντιστήριο 7 1. Ξεκινώντας

AVL Tree Example:

• Now the AVL tree is balanced.

14

17

7

4

53

11

12

8 13

Page 10: 14 11 17 7 53 4 - University of Cyprus treeSolutions.pdf · ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι Φροντιστήριο 7 1. Ξεκινώντας

AVL Tree Example:

• Now remove 53

14

17

7

4

53

11

12

8 13

Page 11: 14 11 17 7 53 4 - University of Cyprus treeSolutions.pdf · ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι Φροντιστήριο 7 1. Ξεκινώντας

AVL Tree Example:

• Now remove 53, unbalanced

14

17

7

4

11

12

8 13

Page 12: 14 11 17 7 53 4 - University of Cyprus treeSolutions.pdf · ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι Φροντιστήριο 7 1. Ξεκινώντας

AVL Tree Example:

• Balanced! Remove 11

14

17

7

4

11

12 8

13

Page 13: 14 11 17 7 53 4 - University of Cyprus treeSolutions.pdf · ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι Φροντιστήριο 7 1. Ξεκινώντας

AVL Tree Example:

• Remove 11, replace it with the largest in its left branch

14

17

7

4

8

12

13

Page 14: 14 11 17 7 53 4 - University of Cyprus treeSolutions.pdf · ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι Φροντιστήριο 7 1. Ξεκινώντας

AVL Tree Example:

• Remove 8, unbalanced

14

17

4

7

12

13

Page 15: 14 11 17 7 53 4 - University of Cyprus treeSolutions.pdf · ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι Φροντιστήριο 7 1. Ξεκινώντας

AVL Tree Example:

• Remove 8, unbalanced

14

17

4

7

12

13

Page 16: 14 11 17 7 53 4 - University of Cyprus treeSolutions.pdf · ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι Φροντιστήριο 7 1. Ξεκινώντας

AVL Tree Example:

• Balanced!!

14

17 4

7

12

13

Page 17: 14 11 17 7 53 4 - University of Cyprus treeSolutions.pdf · ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι Φροντιστήριο 7 1. Ξεκινώντας

In Class Exercises

• Build an AVL tree with the following values:

15, 20, 24, 10, 13, 7, 30, 36, 25

Page 18: 14 11 17 7 53 4 - University of Cyprus treeSolutions.pdf · ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι Φροντιστήριο 7 1. Ξεκινώντας

15

15, 20, 24, 10, 13, 7, 30, 36, 25

20

24

15

20

24

10

13

15

20

24

13

10

13

20

24

15 10

Page 19: 14 11 17 7 53 4 - University of Cyprus treeSolutions.pdf · ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι Φροντιστήριο 7 1. Ξεκινώντας

13

20

24

15 10

15, 20, 24, 10, 13, 7, 30, 36, 25

7

13

20

24 15

10

7

30

36 13

20

30 15

10

7

36 24

Page 20: 14 11 17 7 53 4 - University of Cyprus treeSolutions.pdf · ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι Φροντιστήριο 7 1. Ξεκινώντας

13

20

30 15

10

7

36 24

15, 20, 24, 10, 13, 7, 30, 36, 25

25

13

20

30

15

10

7

36

24

25 13

24

36

20

10

7

25

30

15

Page 21: 14 11 17 7 53 4 - University of Cyprus treeSolutions.pdf · ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι Φροντιστήριο 7 1. Ξεκινώντας

Remove 24 and 20 from the AVL tree.

13

24

36

20

10

7

25

30

15

13

20

36

15

10

7

25

30

13

15

36

10

7

25

30

13

30

36

10

7

25

15

Page 22: 14 11 17 7 53 4 - University of Cyprus treeSolutions.pdf · ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι Φροντιστήριο 7 1. Ξεκινώντας

Question 2 (a) Insert the following sequence of elements into an AVL tree, starting with an empty

tree: 10, 20, 15, 25, 30, 16, 18, 19.

(b) Delete 30 in the AVL tree that you got.

Solution: (a) Red dashed line signifies first part of double rotate action.

(b).

10

25 15

30

20

18

16 19 10

25

15

20

18

16

19 10 25

15 20

18

16 19

20

10

15

15

10

20

10 20

15

25

30

10 25

15

30 20

16

10

25

15

30

20

16 10

25 15

30

20

16

18

19

10

25 15

30

20

18

16 19