Δομές Δεδομένων. Δημήτρης Μιχαήλ. Δέντρα Αναζήτησης. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Δομές Δεδομένων. Δημήτρης Μιχαήλ. Δέντρα Αναζήτησης. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο"

Transcript

1 Δομές Δεδομένων Δέντρα Αναζήτησης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

2 Το πρόβλημα Αναζήτηση Θέλουμε να διατηρήσουμε αντικείμενα με κλειδιά και να μπορούμε εκτός από προσθαφαίρεση αντικειμένων να κάνουμε γρήγορη αναζήτηση κάποιου αντικειμένου με βάση ένα κλειδί. Χαροκόπειο Πανεπιστήμιο 2/72

3 Παράδειγμα Έχουμε αντικείμενα που αντιπροσωπεύουν τραπεζικές συναλλαγές και θέλουμε να κάνουμε αναζήτηση με βάση ένα κλειδί που είναι η ημερομηνία. Χαροκόπειο Πανεπιστήμιο 3/72

4 Αναζήτηση Μπορούμε να υλοποιήσουμε μία δομή που να παρέχει αναζήτηση με διάφορους τρόπους. Το ζητούμενο είναι να είναι η αναζήτηση αποδοτική ταυτόχρονα με τις υπόλοιπες λειτουργίες. πχ μία υλοποίηση αναζήτησης σε λίστα δεν είναι αποδοτική Χαροκόπειο Πανεπιστήμιο 4/72

5 Δυαδικά Δέντρα Αναζήτησης (ΔΔΑ) Binary Search Tree (BST) Ορισμός Ένα δυαδικό δέντρο αναζήτησης είναι ένα δυαδικό δέντρο όπου κάθε κόμβος είναι συσχετισμένος με ένα κλειδί και με την πρόσθετη ιδιότητα ότι το κλειδί οποιουδήποτε κόμβου είναι μεγαλύτερο (ή ίσο) από τα κλειδιά όλων των κόμβων του αριστερού υποδέντρου αυτού του κόμβου, και μικρότερο από τα κλειδιά όλων των κόμβων του δεξιού υποδέντρου αυτού του κόμβου. Χαροκόπειο Πανεπιστήμιο 5/72

6 Παράδειγμα Χαροκόπειο Πανεπιστήμιο 6/72

7 Αναζήτηση σε ΔΔΑ Αλγόριθμος ξεκινάμε από την ρίζα εάν είμαστε σε ένα κόμβο και βρούμε το κλειδί που ψάχνουμε τότε επιστρέφουμε την πληροφορία αυτού του κόμβου αλλιώς πάμε δεξιά ή αριστερά ανάλογα με την σύγκριση του κλειδιού που ψάχνουμε και του κλειδιού του κόμβου Χαροκόπειο Πανεπιστήμιο 7/72

8 Αναζήτηση σε ΔΔΑ Αναζήτηση του Χαροκόπειο Πανεπιστήμιο 8/72

9 Αναζήτηση σε ΔΔΑ Αναζήτηση του Χαροκόπειο Πανεπιστήμιο 8/72

10 Αναζήτηση σε ΔΔΑ Αναζήτηση του 9 9 < Χαροκόπειο Πανεπιστήμιο 8/72

11 Αναζήτηση σε ΔΔΑ Αναζήτηση του 9 9 < < Χαροκόπειο Πανεπιστήμιο 8/72

12 Αναζήτηση σε ΔΔΑ Αναζήτηση του 9 9 < < > Χαροκόπειο Πανεπιστήμιο 8/72

13 Αναζήτηση σε ΔΔΑ Αναζήτηση του Χαροκόπειο Πανεπιστήμιο 9/72

14 Αναζήτηση σε ΔΔΑ Αναζήτηση του Χαροκόπειο Πανεπιστήμιο 9/72

15 Αναζήτηση σε ΔΔΑ Αναζήτηση του > Χαροκόπειο Πανεπιστήμιο 9/72

16 Αναζήτηση σε ΔΔΑ Αναζήτηση του > < Χαροκόπειο Πανεπιστήμιο 9/72

17 Αναζήτηση σε ΔΔΑ Αναζήτηση του > < > 16 NULL Χαροκόπειο Πανεπιστήμιο 9/72

18 Διάσχιση inorder κανόνας Επισκεπτόμαστε πρώτα το αριστερό υποδέντρο, μετά τον κόμβο και μετά το δεξιό υποδέντρο Επισκεπτόμαστε τους κόμβους με αύξουσα σειρά κλειδιού. Χαροκόπειο Πανεπιστήμιο 10/72

19 Εισαγωγή σε ΔΔΑ Αλγόριθμος τρέχουμε πρώτα μία αναζήτηση εάν βρούμε το κλειδί δεν κάνουμε τίποτα αλλιώς προσθέτουμε ένα καινούριο κόμβο με το νέο κλειδί στο σημείο που σταμάτησε η αναζήτηση Χαροκόπειο Πανεπιστήμιο 11/72

20 Εισαγωγή σε ΔΔΑ Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 12/72

21 Εισαγωγή σε ΔΔΑ Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 12/72

22 Εισαγωγή σε ΔΔΑ Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 12/72

23 Εισαγωγή σε ΔΔΑ Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 12/72

24 Εισαγωγή σε ΔΔΑ Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 12/72

25 Εισαγωγή σε ΔΔΑ Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 12/72

26 Εισαγωγή σε ΔΔΑ Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 12/72

27 Διαγραφή σε ΔΔΑ Αλγόριθμος τρέχουμε πρώτα μία αναζήτηση εάν δεν βρούμε το κλειδί δεν κάνουμε τίποτα αλλιώς υπάρχουν 3 περιπτώσεις ανάλογα με τον αριθμό των παιδιών του κόμβου που πρέπει να αφαιρέσουμε Χαροκόπειο Πανεπιστήμιο 13/72

28 Διαγραφή σε ΔΔΑ Περίπτωση 1: Διαγραφή του 17 (κανένα παιδί) Χαροκόπειο Πανεπιστήμιο 14/72

29 Διαγραφή σε ΔΔΑ Περίπτωση 1: Διαγραφή του 17 (κανένα παιδί) Χαροκόπειο Πανεπιστήμιο 14/72

30 Διαγραφή σε ΔΔΑ Περίπτωση 1: Διαγραφή του 17 (κανένα παιδί) Χαροκόπειο Πανεπιστήμιο 14/72

31 Διαγραφή σε ΔΔΑ Περίπτωση 1: Διαγραφή του 17 (κανένα παιδί) Χαροκόπειο Πανεπιστήμιο 14/72

32 Διαγραφή σε ΔΔΑ Περίπτωση 1: Διαγραφή του 17 (κανένα παιδί) Χαροκόπειο Πανεπιστήμιο 14/72

33 Διαγραφή σε ΔΔΑ Περίπτωση 2: Διαγραφή του 16 (ένα παιδί) Χαροκόπειο Πανεπιστήμιο 15/72

34 Διαγραφή σε ΔΔΑ Περίπτωση 2: Διαγραφή του 16 (ένα παιδί) Χαροκόπειο Πανεπιστήμιο 15/72

35 Διαγραφή σε ΔΔΑ Περίπτωση 2: Διαγραφή του 16 (ένα παιδί) Χαροκόπειο Πανεπιστήμιο 15/72

36 Διαγραφή σε ΔΔΑ Περίπτωση 2: Διαγραφή του 16 (ένα παιδί) Χαροκόπειο Πανεπιστήμιο 15/72

37 Διαγραφή σε ΔΔΑ Περίπτωση 2: Διαγραφή του 16 (ένα παιδί) Χαροκόπειο Πανεπιστήμιο 15/72

38 Διαγραφή σε ΔΔΑ Περίπτωση 2: Διαγραφή του 16 (ένα παιδί) Χαροκόπειο Πανεπιστήμιο 15/72

39 Διαγραφή σε ΔΔΑ Περίπτωση 2: Διαγραφή του 16 (ένα παιδί) Χαροκόπειο Πανεπιστήμιο 15/72

40 Διαγραφή σε ΔΔΑ Περίπτωση 3: Διαγραφή του 15 (δύο παιδιά) Χαροκόπειο Πανεπιστήμιο 16/72

41 Υπολογισμός του επόμενου κλειδιού της ρίζας Χρήσιμη ρουτίνα για την διαγραφή Το πρόβλημα Έχοντας ένα υποδέντρο θέλουμε να βρούμε τον κόμβο με το αμέσως επόμενο κλειδί από τη ρίζα του υποδέντρου. Χαροκόπειο Πανεπιστήμιο 17/72

42 Υπολογισμός του επόμενου κλειδιού της ρίζας Χαροκόπειο Πανεπιστήμιο 18/72

43 Υπολογισμός του επόμενου κλειδιού της ρίζας Χαροκόπειο Πανεπιστήμιο 18/72

44 Υπολογισμός του επόμενου κλειδιού της ρίζας Χαροκόπειο Πανεπιστήμιο 18/72

45 Υπολογισμός του επόμενου κλειδιού της ρίζας Ο επόμενος κόμβος της ρίζας έχει το πολύ ένα παιδί. Χαροκόπειο Πανεπιστήμιο 18/72

46 Διαγραφή σε ΔΔΑ Περίπτωση 3: Διαγραφή του 15 (δύο παιδιά) Χαροκόπειο Πανεπιστήμιο 19/72

47 Διαγραφή σε ΔΔΑ Περίπτωση 3: Διαγραφή του 15 (δύο παιδιά) Χαροκόπειο Πανεπιστήμιο 19/72

48 Διαγραφή σε ΔΔΑ Περίπτωση 3: Διαγραφή του 15 (δύο παιδιά) Χαροκόπειο Πανεπιστήμιο 19/72

49 Διαγραφή σε ΔΔΑ Περίπτωση 3: Διαγραφή του 15 (δύο παιδιά) Χαροκόπειο Πανεπιστήμιο 19/72

50 Διαγραφή σε ΔΔΑ Περίπτωση 3: Διαγραφή του 15 (δύο παιδιά) Χαροκόπειο Πανεπιστήμιο 19/72

51 Διαγραφή σε ΔΔΑ Περίπτωση 3: Διαγραφή του 15 (δύο παιδιά) Χαροκόπειο Πανεπιστήμιο 19/72

52 Διαγραφή σε ΔΔΑ Περίπτωση 3: Διαγραφή του 15 (δύο παιδιά) Χαροκόπειο Πανεπιστήμιο 19/72

53 Επιδόσεις Όλες οι λειτουργίες χρειάζονται χρόνο ανάλογο με το ύψος του δέντρου. Χαροκόπειο Πανεπιστήμιο 20/72

54 Προβλήματα Υπάρχουν πολλά δέντρα για τα ίδια αντικείμενα αριστερά η χειρότερη περίπτωση: ύψος h = O(n) δεξιά η καλύτερη περίπτωση: ύψος h = O(log n) Το δέντρο εξαρτάται από την σειρά της εισαγωγής και διαγραφής των στοιχείων του δέντρο, η οποία δεν είναι γνωστή εκ των προτέρων Χαροκόπειο Πανεπιστήμιο 21/72

55 Ισορροπημένα Δέντρα Αναζήτησης Balanced BSTs Δέντρα αναζήτησης τα οποία είναι ισορροπημένα ανά πάσα στιγμή ανεξάρτητα από την σειρά των εισαγωγών και διαγραφών στοιχείων. h = O(log n) Χαροκόπειο Πανεπιστήμιο 22/72

56 2-3-4 Δέντρα Αναζήτησης top-down Επιτρέπουμε κόμβους με 2, 3 ή 4 παιδιά (, 13] (13, + ] (, 13] (13, 29] (29, + ] (, 13] (13, 29] (29, 58] (58, + ] Χαροκόπειο Πανεπιστήμιο 23/72

57 2-3-4 Δέντρα Αναζήτησης top-down Ορισμός Ένα δέντρο αναζήτησης είναι ένα δέντρο το οποίο είτε είναι κενό είτε αποτελείται από τρεις τύπους κόμβων: 2-κόμβους, 3-κόμβους και 4-κόμβους. Ισορροπημένο Ένα ισορροπημένο δέντρο αναζήτησης είναι ένα δέντρο αναζήτησης του οποίου όλοι οι σύνδεσμοι δείχνουν σε κενά δέντρα τα οποία ισαπέχουν από τη ρίζα. Χαροκόπειο Πανεπιστήμιο 24/72

58 Παράδειγμα Ισορροπημένου Δέντρου Χαροκόπειο Πανεπιστήμιο 25/72

59 Ύψος Ισορροπημένου Δέντρου Θεώρημα Ένα δέντρο αναζήτησης με n κλειδιά έχει ύψος O(log n). Απόδειξη Έστω h το ύψος του δέντρου. Χαροκόπειο Πανεπιστήμιο 26/72

60 Ύψος Ισορροπημένου Δέντρου Θεώρημα Ένα δέντρο αναζήτησης με n κλειδιά έχει ύψος O(log n). Απόδειξη Έστω h το ύψος του δέντρου. Κάθε επίπεδο i έχει τουλάχιστον 2 i κόμβους. Χαροκόπειο Πανεπιστήμιο 26/72

61 Ύψος Ισορροπημένου Δέντρου Θεώρημα Ένα δέντρο αναζήτησης με n κλειδιά έχει ύψος O(log n). Απόδειξη Έστω h το ύψος του δέντρου. Κάθε επίπεδο i έχει τουλάχιστον 2 i κόμβους. Άρα n h 1 = 2 h 1. Χαροκόπειο Πανεπιστήμιο 26/72

62 Ύψος Ισορροπημένου Δέντρου Θεώρημα Ένα δέντρο αναζήτησης με n κλειδιά έχει ύψος O(log n). Απόδειξη Έστω h το ύψος του δέντρου. Κάθε επίπεδο i έχει τουλάχιστον 2 i κόμβους. Άρα n h 1 = 2 h 1. Λογαριθμίζοντας πέρνουμε πως log 2 (n + 1) h. Χαροκόπειο Πανεπιστήμιο 26/72

63 Αναζήτηση σε Ισορροπημένο Δέντρο Αναζήτηση σε Δέντρο: Γενίκευση του αλγόριθμου για ΔΔΑ Χαροκόπειο Πανεπιστήμιο 27/72

64 Εισαγωγή σε Ισορροπημένο Δέντρο Διατηρώντας την ισορροπία! Τρέχουμε αναζήτηση για να δούμε που πρέπει να προστεθεί το νέο κλειδί: εάν η αναζήτηση τερματιστεί σε 2-κόμβο τον κάνουμε 3-κόμβο εάν η αναζήτηση τερματιστεί σε 3-κόμβο τον κάνουμε 4-κόμβο εάν η αναζήτηση τερματιστεί σε 4-κόμβο σπάμε τον 4-κόμβο σε δύο 2-κόμβους μεταβιβάζοντας το μεσαίο κλειδί προς τα επάνω και μετά προσθέτουμε το καινούριο κλειδί σε έναν από τους 2-κόμβους (μπορεί να χρειαστεί να κάνουμε το ίδιο και στον πατέρα, μέχρι την ρίζα) Χαροκόπειο Πανεπιστήμιο 28/72

65 Εισαγωγή σε Ισορροπημένο Δέντρο Τερματισμός σε 2-κόμβο (εισαγωγή του 14) Χαροκόπειο Πανεπιστήμιο 29/72

66 Εισαγωγή σε Ισορροπημένο Δέντρο Τερματισμός σε 2-κόμβο (εισαγωγή του 14) Χαροκόπειο Πανεπιστήμιο 29/72

67 Εισαγωγή σε Ισορροπημένο Δέντρο Τερματισμός σε 2-κόμβο (εισαγωγή του 14) Χαροκόπειο Πανεπιστήμιο 29/72

68 Εισαγωγή σε Ισορροπημένο Δέντρο Τερματισμός σε 2-κόμβο (εισαγωγή του 14) Χαροκόπειο Πανεπιστήμιο 29/72

69 Εισαγωγή σε Ισορροπημένο Δέντρο Τερματισμός σε 3-κόμβο (εισαγωγή του 10) Χαροκόπειο Πανεπιστήμιο 30/72

70 Εισαγωγή σε Ισορροπημένο Δέντρο Τερματισμός σε 3-κόμβο (εισαγωγή του 10) Χαροκόπειο Πανεπιστήμιο 30/72

71 Εισαγωγή σε Ισορροπημένο Δέντρο Τερματισμός σε 3-κόμβο (εισαγωγή του 10) Χαροκόπειο Πανεπιστήμιο 30/72

72 Εισαγωγή σε Ισορροπημένο Δέντρο Τερματισμός σε 3-κόμβο (εισαγωγή του 10) Χαροκόπειο Πανεπιστήμιο 30/72

73 Εισαγωγή σε Ισορροπημένο Δέντρο Τερματισμός σε 4-κόμβο (εισαγωγή του 4) Χαροκόπειο Πανεπιστήμιο 31/72

74 Εισαγωγή σε Ισορροπημένο Δέντρο Τερματισμός σε 4-κόμβο (εισαγωγή του 4) Χαροκόπειο Πανεπιστήμιο 31/72

75 Εισαγωγή σε Ισορροπημένο Δέντρο Τερματισμός σε 4-κόμβο (εισαγωγή του 4) Χαροκόπειο Πανεπιστήμιο 31/72

76 Εισαγωγή σε Ισορροπημένο Δέντρο Τερματισμός σε 4-κόμβο (εισαγωγή του 4) Χαροκόπειο Πανεπιστήμιο 31/72

77 Εισαγωγή σε Ισορροπημένο Δέντρο Τερματισμός σε 4-κόμβο (εισαγωγή του 4) Χαροκόπειο Πανεπιστήμιο 31/72

78 Εισαγωγή σε Ισορροπημένο Δέντρο Τερματισμός σε 4-κόμβο (εισαγωγή του 4) Χαροκόπειο Πανεπιστήμιο 31/72

79 Εισαγωγή σε Ισορροπημένο Δέντρο Τερματισμός σε 4-κόμβο (εισαγωγή του 4) Χαροκόπειο Πανεπιστήμιο 31/72

80 Εισαγωγή σε Ισορροπημένο Δέντρο Τερματισμός σε 4-κόμβο (εισαγωγή του 4) Υπάρχει όμως και η περίπτωση όπου και ο πατέρας είναι 4-κόμβος. Σε αυτήν την περίπτωση κάνουμε την ίδια διάσπαση ξανά, πιθανώς μέχρι την ρίζα Χαροκόπειο Πανεπιστήμιο 31/72

81 Εισαγωγή σε Ισορροπημένο Δέντρο Για να απλουστεύσουμε την διαδικασία εισαγωγής σε περίπτωση διάσπασης πολλών κόμβων, χρησιμοποιούμε την εξής τεχνική: φροντίζουμε η διαδρομή αναζήτησης να μη τερματίσει σε 4-κόμβο, χωρίζοντας κάθε 4-κόμβο που βρίσκουμε κατά την κάθοδο στο δέντρο Χαροκόπειο Πανεπιστήμιο 32/72

82 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 33/72

83 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 33/72

84 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 33/72

85 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 33/72

86 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 33/72

87 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 33/72

88 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 33/72

89 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 33/72

90 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 33/72

91 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 33/72

92 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 33/72

93 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 33/72

94 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 33/72

95 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 33/72

96 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 33/72

97 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 33/72

98 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 33/72

99 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 33/72

100 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 33/72

101 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 33/72

102 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 33/72

103 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 33/72

104 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 33/72

105 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 33/72

106 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 33/72

107 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 33/72

108 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 33/72

109 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 33/72

110 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 33/72

111 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 33/72

112 Διαγραφή σε Ισορροπημένο Δέντρο Κάνουμε αναγωγή του προβλήματος στο πρόβλημα διαγραφής από φύλλο Χρησιμοποιούμε την τεχνική των ΔΔΑ π.χ για διαγραφή του 25, το αντικαθιστούμε πρώτα με τον inorder successor (26) ή με τον inorder predecessor (20) Χαροκόπειο Πανεπιστήμιο 34/72

113 Διαγραφή σε Ισορροπημένο Δέντρο Κάνουμε αναγωγή του προβλήματος στο πρόβλημα διαγραφής από φύλλο Χρησιμοποιούμε την τεχνική των ΔΔΑ π.χ για διαγραφή του 25, το αντικαθιστούμε πρώτα με τον inorder successor (26) ή με τον inorder predecessor (20) Χαροκόπειο Πανεπιστήμιο 34/72

114 Διαγραφή σε Ισορροπημένο Δέντρο Διαγραφή από Φύλλο Το φύλλο έχει 2 κλειδιά (π.χ διαγραφή του 26 παρακάτω), δηλαδή είναι είτε 3-κόμβος, είτε 4-κόμβος. Έυκολη περίπτωση, απλά το διαγράφουμε Χαροκόπειο Πανεπιστήμιο 35/72

115 Διαγραφή σε Ισορροπημένο Δέντρο Διαγραφή από Φύλλο Το φύλλο έχει 2 κλειδιά (π.χ διαγραφή του 26 παρακάτω), δηλαδή είναι είτε 3-κόμβος, είτε 4-κόμβος. Έυκολη περίπτωση, απλά το διαγράφουμε Χαροκόπειο Πανεπιστήμιο 35/72

116 Διαγραφή σε Ισορροπημένο Δέντρο Διαγραφή από Φύλλο Το φύλλο έχει 1 κλειδί (underflow), δηλαδή είναι 2-κόμβος. κάποιος αδελφός κόμβος (sibling node) έχει 2 κλειδιά balancing: π.χ διαγραφή του Χαροκόπειο Πανεπιστήμιο 36/72

117 Διαγραφή σε Ισορροπημένο Δέντρο Διαγραφή από Φύλλο Το φύλλο έχει 1 κλειδί (underflow), δηλαδή είναι 2-κόμβος. κάποιος αδελφός κόμβος (sibling node) έχει 2 κλειδιά balancing: π.χ διαγραφή του Χαροκόπειο Πανεπιστήμιο 36/72

118 Διαγραφή σε Ισορροπημένο Δέντρο Διαγραφή από Φύλλο Το φύλλο έχει 1 κλειδί (underflow), δηλαδή είναι 2-κόμβος. κάποιος αδελφός κόμβος (sibling node) έχει 2 κλειδιά balancing: π.χ διαγραφή του Χαροκόπειο Πανεπιστήμιο 36/72

119 Διαγραφή σε Ισορροπημένο Δέντρο Διαγραφή από Φύλλο Το φύλλο έχει 1 κλειδί (underflow), δηλαδή είναι 2-κόμβος. όλοι οι αδελφοί κόμβοι (sibling nodes) έχουν 1 κλειδί (είναι δηλαδή 2-κόμβοι) fusion: π.χ διαγραφή του Χαροκόπειο Πανεπιστήμιο 37/72

120 Διαγραφή σε Ισορροπημένο Δέντρο Διαγραφή από Φύλλο Το φύλλο έχει 1 κλειδί (underflow), δηλαδή είναι 2-κόμβος. όλοι οι αδελφοί κόμβοι (sibling nodes) έχουν 1 κλειδί (είναι δηλαδή 2-κόμβοι) fusion: π.χ διαγραφή του Χαροκόπειο Πανεπιστήμιο 37/72

121 Διαγραφή σε Ισορροπημένο Δέντρο Διαγραφή από Φύλλο Το φύλλο έχει 1 κλειδί (underflow), δηλαδή είναι 2-κόμβος. όλοι οι αδελφοί κόμβοι (sibling nodes) έχουν 1 κλειδί (είναι δηλαδή 2-κόμβοι) fusion: π.χ διαγραφή του Χαροκόπειο Πανεπιστήμιο 37/72

122 Διαγραφή σε Ισορροπημένο Δέντρο Διαγραφή από Φύλλο Ο πατέρας έχει τώρα και αυτός πρόβλημα (underflow) επαλαμβάνουμε ή balance ή fusion ανάλογα με τους αδελφούς κόμβους του Χαροκόπειο Πανεπιστήμιο 38/72

123 Διαγραφή σε Ισορροπημένο Δέντρο Διαγραφή από Φύλλο Ο πατέρας έχει τώρα και αυτός πρόβλημα (underflow) επαλαμβάνουμε ή balance ή fusion ανάλογα με τους αδελφούς κόμβους του Χαροκόπειο Πανεπιστήμιο 38/72

124 Διαγραφή σε Ισορροπημένο Δέντρο Διαγραφή από Φύλλο Ο πατέρας έχει τώρα και αυτός πρόβλημα (underflow) επαλαμβάνουμε ή balance ή fusion ανάλογα με τους αδελφούς κόμβους του Χαροκόπειο Πανεπιστήμιο 38/72

125 Διαγραφή σε Ισορροπημένο Δέντρο Το fusion μπορεί να γίνει μέχρι και την ρίζα. Σε περίπτωση που φτάσει στην ρίζα το ύψος του δέντρου μειώνεται κατά ένα. Η διαγραφή υλοποιείτε σε χρόνο O(log n). Χαροκόπειο Πανεπιστήμιο 39/72

126 2-3-4 Δέντρα θετικά: απλός αλγόριθμος εισαγωγής για διατήρηση ύψους πολυπλοκότητα O(log n) για εισαγωγή, διαγραφή και αναζήτηση αρνητικά: 3 διαφορετικοί κόμβοι πολύπλοκες διαδικασίες λόγω πολλών συνδέσμων, αντιγραφών συνδέσμων, κ.τ.λ Χαροκόπειο Πανεπιστήμιο 40/72

127 Κόκκινα-Μαύρα Δέντρα Τα κόκκινα-μάυρα δέντρα είναι μία αναπαράσταση των δέντρων ως καθιερωμένα ΔΔΑ (μόνο 2-κόμβους) προσθέτοντας ένα ψηφίο επιπλέον πληροφορίας ανά κόμβο (το χρώμα). Θεωρούμε πως οι σύνδεσμοι έχουν χρώμα κόκκινο ή μαύρο. Επίσης το χρώμα κάθε κόμβου είναι το χρώμα του συνδέσμου που δείχνει στον κόμβο. Χαροκόπειο Πανεπιστήμιο 41/72

128 Κόκκινα-Μαύρα Δέντρα Χαροκόπειο Πανεπιστήμιο 42/72

129 Κόκκινα-Μαύρα Δέντρα Αναζήτηση, εισαγωγή και διαγραφή Αναζήτηση Τα κόκκινα-μαύρα δέντρα είναι ΔΔΑ! Εισαγωγή και Διαγραφή Αντιστοιχία με τα δέντρα, απλά περιγράφουμε τις κινήσεις με περιστροφές! Χαροκόπειο Πανεπιστήμιο 43/72

130 Κόκκινα-Μαύρα Δέντρα Περιστροφές (πρώτη) Χαροκόπειο Πανεπιστήμιο 44/72

131 Κόκκινα-Μαύρα Δέντρα Περιστροφές (πρώτη) Χαροκόπειο Πανεπιστήμιο 44/72

132 Κόκκινα-Μαύρα Δέντρα Περιστροφές (πρώτη) Χαροκόπειο Πανεπιστήμιο 44/72

133 Κόκκινα-Μαύρα Δέντρα Περιστροφές (δεύτερη) Χαροκόπειο Πανεπιστήμιο 45/72

134 Κόκκινα-Μαύρα Δέντρα Περιστροφές (δεύτερη) Χαροκόπειο Πανεπιστήμιο 45/72

135 Κόκκινα-Μαύρα Δέντρα Περιστροφές (δεύτερη) Χαροκόπειο Πανεπιστήμιο 45/72

136 Κόκκινα-Μαύρα Δέντρα Περιστροφές Υπάρχουν και άλλες περιπτώσεις... Χαροκόπειο Πανεπιστήμιο 46/72

137 Άλλα Ισορροπημένα Δέντρα AVL δέντρα: O(log n) ύψος χρησιμοποιώντας περιστροφές splay δέντρα scapegoat δέντρα Χαροκόπειο Πανεπιστήμιο 47/72

138 AVL Δέντρα Το πρώτο ισοζυγισμένο δέντρο! G.M. Adelson-Velskii and E.M. Landis. An algorithm for the organization of information, Proceedings of the USSR Academy of Sciences 146: , Ονομάστηκε από τα αρχικά των συγγραφέων. Χαροκόπειο Πανεπιστήμιο 48/72

139 AVL Δέντρα Δυαδικό δέντρο αναζήτησης Επιπλέον συνθήκη ισορροπίας Η επιπλέον συνθήκη ισορροπίας πρέπει να διατηρείται εύκολα και να διατηρεί το ύψος του δέντρου σε O(log n). Χαροκόπειο Πανεπιστήμιο 49/72

140 AVL Δέντρα Ορισμός Ένα δέντρο AVL είναι ένα δυαδικό δέντρο αναζήτησης T όπου για κάθε κόμβο v T τα ύψη των υποδέντρων του διαφέρουν το πολύ κατά 1. Το ύψος του κενού υποδέντρου ορίζεται σε -1. Χαροκόπειο Πανεπιστήμιο 50/72

141 AVL Δέντρα Αριστερά AVL δέντρο, δεξιά μη-avl δέντρο. Χαροκόπειο Πανεπιστήμιο 51/72

142 AVL Δέντρα Ύψος Θεώρημα Ένα AVL δέντρο με n κλειδιά έχεις ύψος O(log n). Χαροκόπειο Πανεπιστήμιο 52/72

143 AVL Δέντρα Ύψος Θεώρημα Ένα AVL δέντρο με n κλειδιά έχεις ύψος O(log n). Απόδειξη Έστω n(h) ο ελάχιστος αριθμός κόμβων ενός AVL δέντρου με ύψος h. Χαροκόπειο Πανεπιστήμιο 52/72

144 AVL Δέντρα Ύψος Θεώρημα Ένα AVL δέντρο με n κλειδιά έχεις ύψος O(log n). Απόδειξη Έστω n(h) ο ελάχιστος αριθμός κόμβων ενός AVL δέντρου με ύψος h. Εύκολα φαίνεται πως n(1) = 1 και n(2) = 2. Για h > 2 ένα AVL δέντρο έχει την ρίζα και δύο υποδέντρα, ένα AVL υποδέντρο με ύψος h 1 και ένα AVL υποδέντρο με ύψος h 2. h-1 h-2 h Άρα n(h) = 1 + n(h 1) + n(h 2). Χαροκόπειο Πανεπιστήμιο 52/72

145 AVL Δέντρα Ύψος Θεώρημα Ένα AVL δέντρο με n κλειδιά έχεις ύψος O(log n). Απόδειξη Έστω n(h) ο ελάχιστος αριθμός κόμβων ενός AVL δέντρου με ύψος h. Επειδή n(h 1) > n(h 2) έχουμε πως n(h) = 1 + n(h 1) + n(h 2) > 2n(h 2) > 4n(h 4) > 8n(h 6) >... και μέσω αναγωγής n(h) > 2 i n(h 2i) Επειδή n(1) = 1 πέρνουμε πως n(h) > 2 (h 1)/2 και λογαριθμίζοντας πέρνουμε h < 2 log n(h) + 1. Χαροκόπειο Πανεπιστήμιο 52/72

146 Εισαγωγή σε AVL δέντρο Η εισαγωγή γίνεται κανονικά όπως και στα ΔΔΑ αλλά στην συνέχεια μπορεί να χρειαστεί να φτιάξουμε το δέντρο. Θα φροντίσουμε να κάνουμε O(d) πράξεις όπου d είναι το βάθος όπου γίνεται η εισαγωγή. Χαροκόπειο Πανεπιστήμιο 53/72

147 Εισαγωγή σε AVL δέντρο Θα φτιάξουμε το δέντρο με περιστροφές. Έστω x ο κόμβος με το μεγαλύτερο βάθος που είναι μη-ισοζυγισμένος. Υπάρχουν 4 περιπτώσεις ανάλογα με το αν η εισαγωγή είναι στο.1 αριστερό υποδέντρο του αριστερού παιδιού του x.2 δεξί υποδέντρο του αριστερού παιδιού του x.3 αριστερό υποδέντρο του δεξιού παιδιού του x.4 δεξί υποδέντρο του δεξιού παιδιού του x Οι περιπτώσεις 1&4 λύνονται με μονή περιστροφή ενώ οι περιπτώσεις 2&3 με διπλή περιστροφή. Χαροκόπειο Πανεπιστήμιο 54/72

148 Μονή Περιστροφή a b Z h h+1 X Y h X < b < Y < a < Z Χαροκόπειο Πανεπιστήμιο 55/72

149 Μονή Περιστροφή a b Z h h+1 X Y h X < b < Y < a < Z Χαροκόπειο Πανεπιστήμιο 55/72

150 Μονή Περιστροφή b a h+1 X Y h Z h X < b < Y < a < Z Χαροκόπειο Πανεπιστήμιο 55/72

151 Μονή Περιστροφή Χαροκόπειο Πανεπιστήμιο 56/72

152 Μονή Περιστροφή Χαροκόπειο Πανεπιστήμιο 56/72

153 Άλλες περιπτώσεις Στις περιπτώσεις 2&3 δεν λειτουργεί η μονή περιστροφή. a b Z h X h h+1 Y X < b < Y < a < Z Χαροκόπειο Πανεπιστήμιο 57/72

154 Άλλες περιπτώσεις Στις περιπτώσεις 2&3 δεν λειτουργεί η μονή περιστροφή. b a X h h+1 Y Z h X < b < Y < a < Z Χαροκόπειο Πανεπιστήμιο 57/72

155 Διπλή Περιστροφή a b c h Z W h X h Y h-1 W < b < X < c < Y < a < Z Χαροκόπειο Πανεπιστήμιο 58/72

156 Διπλή Περιστροφή a b c h Z W h X h Y h-1 W < b < X < c < Y < a < Z Χαροκόπειο Πανεπιστήμιο 58/72

157 Διπλή Περιστροφή a c b Y h-1 h Z W h X h W < b < X < c < Y < a < Z Χαροκόπειο Πανεπιστήμιο 58/72

158 Διπλή Περιστροφή a c b Y h-1 h Z W h X h W < b < X < c < Y < a < Z Χαροκόπειο Πανεπιστήμιο 58/72

159 Διπλή Περιστροφή c b a W h X h Y h-1 Z h W < b < X < c < Y < a < Z Χαροκόπειο Πανεπιστήμιο 58/72

160 Διαγραφή Η διαγραφή στοιχείων από ένα AVL δέντρο γίνεται με τον ίδιο τρόπο όπως και σε ΔΔΑ με επιπλέον πιθανές περιστροφές. O(log n) στην χειρότερη περίπτωση Χαροκόπειο Πανεπιστήμιο 59/72

161 Εξωτερική Μνήμη seek time: χρόνος ώστε οι κεφαλές να μετακινηθούν στο κατάλληλο σημείο (track) rotational delay: χρόνος αναμονής ώστε να περιστραφεί o κύλινδρος και να έρθει το κατάλληλο sector που ψάχνουμε Χαροκόπειο Πανεπιστήμιο 60/72

162 Εξωτερική Μνήμη η μνήμη των υπολογιστών (DRAM) έχει χρόνο πρόσβασης της τάξης των nanoseconds: 10 9 sec, πχ nsec οι δίσκοι έχουν χρόνο πρόσβασης της τάξης των milliseconds: 10 3, πχ 2-10 ms Χαροκόπειο Πανεπιστήμιο 61/72

163 Εξωτερική Μνήμη η μνήμη των υπολογιστών (DRAM) έχει χρόνο πρόσβασης της τάξης των nanoseconds: 10 9 sec, πχ nsec οι δίσκοι έχουν χρόνο πρόσβασης της τάξης των milliseconds: 10 3, πχ 2-10 ms Συμπέρασμα Δεν συμφέρει να διαβάζουμε λίγα δεδομένα από το δίσκο. Για αυτό τον λόγο οι δίσκοι διαβάζουν πάντα ένα block που είναι της τάξης των Kilobytes, πχ 512K. Χαροκόπειο Πανεπιστήμιο 61/72

164 Βήτα Δέντρα δομή αναζήτησης η οποία είναι αποτελεσματική για αποθήκευση σε δίσκο, γενικεύει τα δέντρα σε δέντρα με κόμβους μεταξύ t και 2t για t 2. Χαροκόπειο Πανεπιστήμιο 62/72

165 Ορισμός Βήτα Δέντρων Ένα δέντρο B-tree είναι ένα δέντρο με ρίζα και τις εξής ιδιότητες:.1 κάθε κόμβος x έχει τα εξής πεδία: (a) n[x], ο αριθμός των κλειδιών που έχει ο κόμβος x (b) τα n[x] κλειδιά σε σειρά: key 1 [x] key 2 [x]... key n[x] [x] (c) τιμή leaf[x] που είναι αλήθεια αν και μόνο αν ο κόμβος x είναι φύλλο Χαροκόπειο Πανεπιστήμιο 63/72

166 Ορισμός Βήτα Δέντρων Ένα δέντρο B-tree είναι ένα δέντρο με ρίζα και τις εξής ιδιότητες:.1 κάθε κόμβος x έχει τα εξής πεδία: (a) n[x], ο αριθμός των κλειδιών που έχει ο κόμβος x (b) τα n[x] κλειδιά σε σειρά: key 1 [x] key 2 [x]... key n[x] [x] (c) τιμή leaf[x] που είναι αλήθεια αν και μόνο αν ο κόμβος x είναι φύλλο.2 εαν ο x είναι εσωτερικός κόμβος περιέχει n[x] + 1 δείκτες c 1[x], c 2[x],..., c n[x]+1 [x] στα παιδιά του. Τα φύλλα δεν έχουν παιδιά οπότε οι δείκτες αυτοί δεν ορίζονται. Χαροκόπειο Πανεπιστήμιο 63/72

167 Ορισμός Βήτα Δέντρων Ένα δέντρο B-tree είναι ένα δέντρο με ρίζα και τις εξής ιδιότητες:.1 κάθε κόμβος x έχει τα εξής πεδία: (a) n[x], ο αριθμός των κλειδιών που έχει ο κόμβος x (b) τα n[x] κλειδιά σε σειρά: key 1 [x] key 2 [x]... key n[x] [x] (c) τιμή leaf[x] που είναι αλήθεια αν και μόνο αν ο κόμβος x είναι φύλλο.2 εαν ο x είναι εσωτερικός κόμβος περιέχει n[x] + 1 δείκτες c 1[x], c 2[x],..., c n[x]+1 [x] στα παιδιά του. Τα φύλλα δεν έχουν παιδιά οπότε οι δείκτες αυτοί δεν ορίζονται..3 Τα κλειδιά key i [x] χωρίζουν τις κλίμακες των κλειδιών που αποθηκεύονται σε κάθε υποδέντρο: εαν το k i είναι ένα κλειδί που αποθηκεύεται στο υποδέντρο με ρίζα c i [x] k 1 key 1 [x] k 2 key 2 [x] key n[x] [x] k n[x]+1. Χαροκόπειο Πανεπιστήμιο 63/72

168 Ορισμός Βήτα Δέντρων.4 Κάθε φύλλο έχει το ίδιο βάθος, το ύψος του δέντρου h. Χαροκόπειο Πανεπιστήμιο 64/72

169 Ορισμός Βήτα Δέντρων.4 Κάθε φύλλο έχει το ίδιο βάθος, το ύψος του δέντρου h..5 Έστω t 2 ο ελάχιστος βαθμός του δέντρου:.1 Κάθε κόμβος εκτός της ρίζας πρέπει να έχει τουλάχιστον t 1 κλειδιά (δηλαδή τουλάχιστον t παιδιά). Εαν το δέντρο είναι μη-κενό, η ρίζα πρέπει να έχει τουλάχιστον ένα κλειδί..2 Κάθε κόμβος μπορεί να περιέχει μέχρι 2t 1 κλειδιά, δηλαδή το πολύ 2t παιδιά. Ένας κόμβος λέγεται γεμάτος (full) εαν περιέχει ακριβώς 2t 1 κλειδιά. Χαροκόπειο Πανεπιστήμιο 64/72

170 Ορισμός Βήτα Δέντρων.4 Κάθε φύλλο έχει το ίδιο βάθος, το ύψος του δέντρου h..5 Έστω t 2 ο ελάχιστος βαθμός του δέντρου:.1 Κάθε κόμβος εκτός της ρίζας πρέπει να έχει τουλάχιστον t 1 κλειδιά (δηλαδή τουλάχιστον t παιδιά). Εαν το δέντρο είναι μη-κενό, η ρίζα πρέπει να έχει τουλάχιστον ένα κλειδί..2 Κάθε κόμβος μπορεί να περιέχει μέχρι 2t 1 κλειδιά, δηλαδή το πολύ 2t παιδιά. Ένας κόμβος λέγεται γεμάτος (full) εαν περιέχει ακριβώς 2t 1 κλειδιά. Το πιο απλό Βήτα-δέντρο είναι για t = 2. Κάθε εσωτερικός κόμβος έχει 2, 3 ή 4 παιδιά δηλαδή ένα δέντρο. Στην πράξη όμως έχουμε πολύ μεγαλύτερες τιμές για το t. Χαροκόπειο Πανεπιστήμιο 64/72

171 Ύψος Βήτα Δέντρου Θεώρημα Ένα Βήτα δέντρο με n 1 κλειδιά και ελάχιστο βαθμό t 2 έχει ύψος n + 1 h log t. 2 Απόδειξη Ένα Βήτα δέντρο με ύψος h έχει ελάχιστο αριθμό κόμβων αν η ρίζα έχει ένα κλειδί και όλοι οι υπόλοιποι κόμβοι t 1 κλειδιά. Στο επίπεδο 0 υπάρχει ένα κόμβος. Στο επίπεδο 1 υπάρχουν 2 κόμβοι. Στο επίπεδο 2 υπάρχουν 2t κόμβοι, στο επίπεδο 3 υπάρχουν 2t 2 κόμβοι, κ.τ.λ Χαροκόπειο Πανεπιστήμιο 65/72

172 Ύψος Βήτα Δέντρου Θεώρημα Ένα Βήτα δέντρο με n 1 κλειδιά και ελάχιστο βαθμό t 2 έχει ύψος n + 1 h log t. 2 Απόδειξη Ο αριθμός λοιπόν των κλειδιών είναι: n 1 + (t 1) = 1 + 2(t 1) = 2t h 1 h i=1 2t i 1 ( t h 1 t 1 ) Χαροκόπειο Πανεπιστήμιο 65/72

173 Προσπελάσεις Δίσκου Φροντίζοντας κάθε κόμβος να χωρά σε μια σελίδα δίσκου, κάνουμε τόσες προσπελάσεις δίσκου όσες και το ύψος του δέντρου κόµβος 1000 κλειδιά 1001 κόµβοι κλειδιά κόµβοι κλειδιά Το δέντρο έχει ύψος O(log t n). Χαροκόπειο Πανεπιστήμιο 66/72

174 Βασικές Παραδοχές για Υλοποίηση Βήτα Δέντρων (i) Η ρίζα του Βήτα δέντρου θα είναι πάντα στην μνήμη (ii) Θα έχουμε δύο συναρτήσεις που διαβάζουν και γράφουν έναν κόμβο στον σκληρό δίσκο DISK READ(x) DISK WRITE(x) Χαροκόπειο Πανεπιστήμιο 67/72

175 Αναζήτηση σε Βήτα Δέντρο Η αναζήτηση δουλεύει όπως και στα ΔΔΑ (Δυαδικά Δέντρα Αναζήτησης) μόνο που τώρα έχουμε περισσότερες επιλογές σε κάθε κόμβο. B TREE SEARCH(x, k) i = 1 while i n[x] and k > key i [x] do i = i + 1 end if i n[x] and k = key i [x] then return (x, i) end if leaf[x] then return nil else DISK READ(c i [x]) end return B TREE SEARCH(c i [x], k) Χαροκόπειο Πανεπιστήμιο 68/72

176 Εισαγωγή σε Βήτα Δέντρα Καθώς αναζητούμε την θέση εισαγωγής ενός στοιχείου, διαιρούμε στα δύο οποιουσδήποτε κόμβους είναι γεμάτοι (έχουν 2t 1 κλειδιά). Όταν διαιρείται ένας κόμβος το μεσαίο κλειδί ανεβαίνει προς τα επάνω. Με αυτό τον τρόπο κάνουμε χώρο για πιθανές διαιρέσεις κόμβων που βρίσκονται παρακάτω. Χαροκόπειο Πανεπιστήμιο 69/72

177 Διαίρεση κόμβου (split) t = 4 x keyi 1[x] keyi[x] N W x keyi 1[x] keyi[x] keyi+1[x] N S W y = ci[x] P Q R S T U V y = ci[x] P Q R z = ci+1[x] T U V T 1 T 2 T 3 T 4 T 5 T 6 T 7 T 8 T 1 T 2 T 3 T 4 T 5 T 6 T 7 T 8 Χαροκόπειο Πανεπιστήμιο 70/72

178 Παράδειγμα t = 3 G M P X A C D E J K N O R S T U V Y Z Χαροκόπειο Πανεπιστήμιο 71/72

179 Παράδειγμα t = 3, εισαγωγή του B G M P X A B C D E J K N O R S T U V Y Z Χαροκόπειο Πανεπιστήμιο 71/72

180 Παράδειγμα t = 3, εισαγωγή του Q G M P T X A B C D E J K N O Q R S U V Y Z Χαροκόπειο Πανεπιστήμιο 71/72

181 Παράδειγμα t = 3, εισαγωγή του L P G M T X A B C D E J K L N O Q R S U V Y Z Χαροκόπειο Πανεπιστήμιο 71/72

182 Παράδειγμα t = 3, εισαγωγή του F P C G M T X A B D E F J K L N O Q R S U V Y Z Χαροκόπειο Πανεπιστήμιο 71/72

183 Διαγραφή από Β-Δέντρα Λειτουργεί με παρόμοιο τρόπο με τα δέντρα. Μπορεί να χρειαστεί να κάνουμε balance fuse Χαροκόπειο Πανεπιστήμιο 72/72

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Δέντρα Αναζήτησης. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Δέντρα Αναζήτησης. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Δομές Δεδομένων Δέντρα Αναζήτησης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Το πρόβλημα Αναζήτηση Θέλουμε να διατηρήσουμε αντικείμενα με κλειδιά και να μπορούμε εκτός από

Διαβάστε περισσότερα

Δυαδικά Δένδρα Αναζήτησης, Δένδρα AVL

Δυαδικά Δένδρα Αναζήτησης, Δένδρα AVL Δυαδικά Δένδρα Αναζήτησης, Δένδρα AVL Υλικό από τις σηµειώσεις Ν. Παπασπύρου, 2006 Δέντρα δυαδικής αναζήτησης Δενδρικές δοµές δεδοµένων στις οποίες Όλα τα στοιχεία στο αριστερό υποδέντρο της ρίζας είναι

Διαβάστε περισσότερα

AVL-trees C++ implementation

AVL-trees C++ implementation Τ Μ Η Μ Α Μ Η Χ Α Ν Ι Κ Ω Ν Η / Υ Κ Α Ι Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ AVL-trees C++ implementation Δομές Δεδομένων Μάριος Κενδέα 31 Μαρτίου 2015 kendea@ceid.upatras.gr Εισαγωγή (1/3) Δυαδικά Δένδρα Αναζήτησης:

Διαβάστε περισσότερα

Διάλεξη 12: Δέντρα ΙΙ Δυαδικά Δέντρα

Διάλεξη 12: Δέντρα ΙΙ Δυαδικά Δέντρα Διάλεξη 12: Δέντρα ΙΙ Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Δυαδικά Δένδρα Δυαδικά Δένδρα Αναζήτησης (ΔΔΑ) Εύρεση Τυχαίου, Μέγιστου, Μικρότερου στοιχείου Εισαγωγή στοιχείου

Διαβάστε περισσότερα

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 6. Δυαδικά Δέντρα 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 18/11/2016 Εισαγωγή Τα

Διαβάστε περισσότερα

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 12: Δέντρα ΙΙ -Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Δυαδικά Δένδρα - Δυαδικά Δένδρα Αναζήτησης(ΔΔΑ) - Εύρεση Τυχαίου, Μέγιστου, Μικρότερου στοιχείου - Εισαγωγή

Διαβάστε περισσότερα

ιαφάνειες παρουσίασης #10 (β)

ιαφάνειες παρουσίασης #10 (β) ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ http://www.softlab.ntua.gr/~nickie/courses/progtech/ ιδάσκοντες: Γιάννης Μαΐστρος (maistros@cs.ntua.gr) Στάθης Ζάχος (zachos@cs.ntua.gr) Νίκος Παπασπύρου (nickie@softlab.ntua.gr)

Διαβάστε περισσότερα

Διάλεξη 13: Δέντρα ΙΙΙ Ισοζυγισμένα Δέντρα, AVL Δέντρα

Διάλεξη 13: Δέντρα ΙΙΙ Ισοζυγισμένα Δέντρα, AVL Δέντρα Διάλεξη 13: Δέντρα ΙΙΙ Ισοζυγισμένα Δέντρα, AVL Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ισοζυγισμένα Δέντρα Υλοποίηση AVL δέντρων Εισαγωγή Κόμβων και Περιστροφές σε AVL δέντρα

Διαβάστε περισσότερα

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή Ισορροπημένα Δένδρα Μπορούμε να επιτύχουμε για κάθε λειτουργία; χρόνο εκτέλεσης Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή μετά από Περιστροφές x αριστερή περιστροφή από το x y α β y

Διαβάστε περισσότερα

Διάλεξη 13: Δέντρα ΙΙΙ Ισοζυγισμένα Δέντρα, AVL Δέντρα. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 13: Δέντρα ΙΙΙ Ισοζυγισμένα Δέντρα, AVL Δέντρα. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 13: Δέντρα ΙΙΙ Ισοζυγισμένα Δέντρα, AVL Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ισοζυγισμένα Δέντρα Υλοποίηση AVL δέντρων Εισαγωγή Κόμβων και Περιστροφές σε AVL δέντρα

Διαβάστε περισσότερα

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δυναμικός Κατακερματισμός Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 1 Κατακερματισμός Τι αποθηκεύουμε στους κάδους; Στα παραδείγματα δείχνουμε μόνο την τιμή του πεδίου κατακερματισμού Την ίδια την εγγραφή

Διαβάστε περισσότερα

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δυναμικός Κατακερματισμός 1 Κατακερματισμός Τι αποθηκεύουμε στους κάδους; Στα παραδείγματα δείχνουμε μόνο την τιμή του πεδίου κατακερματισμού Την ίδια την εγγραφή (ως τρόπος οργάνωσης αρχείου) μέγεθος

Διαβάστε περισσότερα

Δένδρα Αναζήτησης Πολλαπλής Διακλάδωσης

Δένδρα Αναζήτησης Πολλαπλής Διακλάδωσης Δένδρα Αναζήτησης Πολλαπλής Διακλάδωσης Δένδρα στα οποία κάθε κόμβος μπορεί να αποθηκεύει ένα ή περισσότερα κλειδιά. Κόμβος με d διακλαδώσεις : k 1 k 2 k 3 k 4 d-1 διατεταγμένα κλειδιά d διατεταγμένα παιδιά

Διαβάστε περισσότερα

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Ουρές Προτεραιότητας. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Ουρές Προτεραιότητας. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Δομές Δεδομένων Ουρές Προτεραιότητας Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρά Προτεραιότητας Το πρόβλημα Έχουμε αντικείμενα με κλειδιά και θέλουμε ανά πάσα στιγμή

Διαβάστε περισσότερα

Δομές Δεδομένων και Αλγόριθμοι

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 16 Δένδρα (Trees) 1 / 42 Δένδρα (Trees) Ένα δένδρο είναι ένα συνδεδεμένο γράφημα χωρίς κύκλους Για κάθε

Διαβάστε περισσότερα

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Κατακερματισμός. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Κατακερματισμός. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Δομές Δεδομένων Κατακερματισμός Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Λεξικό Dictionary Ένα λεξικό (dictionary) είναι ένας αφηρημένος τύπος δεδομένων (ΑΤΔ) που διατηρεί

Διαβάστε περισσότερα

Ισοζυγισμένα υαδικά έντρα Αναζήτησης

Ισοζυγισμένα υαδικά έντρα Αναζήτησης Ισοζυγισμένα υαδικά έντρα Αναζήτησης ομές εδομένων 3ο εξάμηνο ιδάσκων: Χρήστος ουλκερίδης ιαφάνειες προσαρμοσμένες από το υλικό της Μαρίας Χαλκίδη Ισοζυγισμένα υαδικά έντρα Αναζήτησης Ισοζυγισμένα Α είναι

Διαβάστε περισσότερα

Διάλεξη 14: Δέντρα IV B Δένδρα. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 14: Δέντρα IV B Δένδρα. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 14: Δέντρα IV B Δένδρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: 2 3 Δένδρα, Εισαγωγή και άλλες πράξεις Άλλα Δέντρα: Β δένδρα, Β+ δέντρα, R δέντρα Διδάσκων: Παναγιώτης Ανδρέου ΕΠΛ231

Διαβάστε περισσότερα

Δομές Δεδομένων. Ενότητα 13: B-Δέντρα/AVL-Δέντρα. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων

Δομές Δεδομένων. Ενότητα 13: B-Δέντρα/AVL-Δέντρα. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων Ενότητα 13: B-Δέντρα/AVL-Δέντρα Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε

Διαβάστε περισσότερα

Δοµές Δεδοµένων. 18η Διάλεξη Ισορροπηµένα δέντρα. Ε. Μαρκάκης

Δοµές Δεδοµένων. 18η Διάλεξη Ισορροπηµένα δέντρα. Ε. Μαρκάκης Δοµές Δεδοµένων 18η Διάλεξη Ισορροπηµένα δέντρα Ε. Μαρκάκης Περίληψη Επανάληψη των Τυχαιοποιηµένων ΔΔΑ, Στρεβλών ΔΔΑ, Δέντρων 2-3-4 Δέντρα κόκκινου-µαύρου Λίστες Παράλειψης Χαρακτηριστικά επιδόσεων - συµπεράσµατα

Διαβάστε περισσότερα

Δομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής

Δομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής Ενότητα 8: Γραμμική Αναζήτηση και Δυαδική Αναζήτηση-Εισαγωγή στα Δέντρα και Δυαδικά Δέντρα-Δυαδικά Δέντρα Αναζήτησης & Υλοποίηση ΔΔΑ με δείκτες Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή Ισορροπημένα Δένδρα Μπορούμε να επιτύχουμε για κάθε λειτουργία; χρόνο εκτέλεσης Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή μετά από Περιστροφές x αριστερή περιστροφή από το x y α β y

Διαβάστε περισσότερα

Εισαγωγή ενός νέου στοιχείου. Επιλογή i-οστoύ στοιχείου : Εύρεση στοιχείου με το i-οστό μικρότερο κλειδί

Εισαγωγή ενός νέου στοιχείου. Επιλογή i-οστoύ στοιχείου : Εύρεση στοιχείου με το i-οστό μικρότερο κλειδί Δομές Αναζήτησης Χειριζόμαστε ένα σύνολο στοιχείων κλειδί από ολικά διατεταγμένο σύνολο όπου το κάθε στοιχείο έχει ένα Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες: Εισαγωγή ενός νέου στοιχείου με

Διαβάστε περισσότερα

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων ΟΝΟΜΑΤΕΠΩΝΥΜΟ: ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ AM: Δοµές Δεδοµένων Πτυχιακή Εξεταστική Ιούλιος 2014 Διδάσκων : Ευάγγελος Μαρκάκης 09.07.2014 ΥΠΟΓΡΑΦΗ ΕΠΟΠΤΗ: Διάρκεια εξέτασης : 2 ώρες

Διαβάστε περισσότερα

Δένδρα. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα:

Δένδρα. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Δένδρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή σε δενδρικές δομές δεδομένων, ορισμοί, πράξεις και αναπαράσταση στη μνήμη ΔυαδικάΔένδρακαιΔυαδικάΔένδραΑναζήτησης ΕΠΛ 231 Δομές

Διαβάστε περισσότερα

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 23: Ισοζυγισμένα Δέντρα, AVL Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ισοζυγισμένα Δέντρα - Υλοποίηση AVL-δέντρων - Εισαγωγή Κόμβων και Περιστροφές σε AVL δέντρα Διδάσκων:

Διαβάστε περισσότερα

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή Ισορροπημένα Δένδρα Μπορούμε να επιτύχουμε για κάθε λειτουργία; χρόνο εκτέλεσης Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή μετά από Περιστροφές x αριστερή περιστροφή από το x y α β y

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΛΥΣΗ ΣΤΗΝ ΕΥΤΕΡΗ ΑΣΚΗΣΗ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΛΥΣΗ ΣΤΗΝ ΕΥΤΕΡΗ ΑΣΚΗΣΗ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΛΥΣΗ ΣΤΗΝ ΕΥΤΕΡΗ ΑΣΚΗΣΗ ΜΑΘΗΜΑ ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ ΑΚΑ. ΕΤΟΣ 2012-13 Ι ΑΣΚΟΝΤΕΣ Ιωάννης Βασιλείου Καθηγητής, Τοµέας Τεχνολογίας

Διαβάστε περισσότερα

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Συμβολοσειρές. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Συμβολοσειρές. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Δομές Δεδομένων Συμβολοσειρές Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Συμβολοσειρές Συμβολοσειρές και προβλήματα που αφορούν συμβολοσειρές εμφανίζονται τόσο συχνά που

Διαβάστε περισσότερα

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δεντρικά Ευρετήρια Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 1 Δέντρα Αναζήτησης Ένα δέντρο αναζήτησης (search tree) τάξεως p είναι ένα δέντρο τέτοιο ώστε κάθε κόμβος του περιέχει το πολύ p - 1 τιμές

Διαβάστε περισσότερα

έντρα Πολλαπλής ιακλάδωσης και (a, b)- έντρα

έντρα Πολλαπλής ιακλάδωσης και (a, b)- έντρα έντρα Πολλαπλής ιακλάδωσης και (a, b)- έντρα ηµήτρης Φωτάκης Τµήµα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστηµάτων έντρα Αναζήτησης Πολλαπλής ιακλάδωσης ( ΑΠ ) ΑΠ ή έντρα m-δρόµων: Σ Βάσεων εδοµένων.

Διαβάστε περισσότερα

Δοµές Δεδοµένων. 17η Διάλεξη Ισορροπηµένα δέντρα. Ε. Μαρκάκης

Δοµές Δεδοµένων. 17η Διάλεξη Ισορροπηµένα δέντρα. Ε. Μαρκάκης Δοµές Δεδοµένων 17η Διάλεξη Ισορροπηµένα δέντρα Ε. Μαρκάκης Περίληψη Εισαγωγή Τυχαιοποιηµένα ΔΔΑ (Randomized Binary Search trees) Στρεβλά ΔΔΑ (Splay trees) Καθοδικά δέντρα 2-3-4 (Top-Down 2-3-4 trees)

Διαβάστε περισσότερα

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή Ισορροπημένα Δένδρα Μπορούμε να επιτύχουμε για κάθε λειτουργία; χρόνο εκτέλεσης Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή μετά από Περιστροφές x αριστερή περιστροφή από το x y α β y

Διαβάστε περισσότερα

Αλγόριθµοι και Πολυπλοκότητα

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα Φεβρουαρίου 0 / ένδρα Ενα δένδρο είναι

Διαβάστε περισσότερα

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων ΟΝΟΜΑΤΕΠΩΝΥΜΟ: ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ AM: Δοµές Δεδοµένων Εξεταστική Ιανουαρίου 2014 Διδάσκων : Ευάγγελος Μαρκάκης 20.01.2014 ΥΠΟΓΡΑΦΗ ΕΠΟΠΤΗ: Διάρκεια εξέτασης : 2 ώρες και

Διαβάστε περισσότερα

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δεντρικά Ευρετήρια 1 Δέντρα Αναζήτησης Ένα δέντρο αναζήτησης (search tree) τάξεως p είναι ένα δέντρο τέτοιο ώστε κάθε κόμβος του περιέχει το πολύ p - 1 τιμές αναζήτησης και ρ δείκτες ως εξής P 1 K 1 P

Διαβάστε περισσότερα

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δεντρικά Ευρετήρια Ευαγγελία Πιτουρά 1 Δέντρα Αναζήτησης Ένα δέντρο αναζήτησης (search tree) τάξεως p είναι ένα δέντρο τέτοιο ώστε κάθε κόμβος του περιέχει το πολύ p - 1 τιμές αναζήτησης και ρ δείκτες

Διαβάστε περισσότερα

Alternative to Balanced Trees, Comms of the ACM, 33(6), June 1990,

Alternative to Balanced Trees, Comms of the ACM, 33(6), June 1990, ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ Τμήμα Πληροφορικής & Τηλεπικοινωνιών Μια σημείωση από τον Α. Δελή για το άρθρο: W. Pugh, Skip Lists: A Probabilistic Alternative to Balanced Trees, Comms of the ACM, 33(), June 10,

Διαβάστε περισσότερα

Δυαδικά Δέντρα Αναζήτησης (Binary Search Trees) Ορισμός : Ένα δυαδικό δέντρο αναζήτησης t είναι ένα δυαδικό δέντρο, το οποίο είτε είναι κενό είτε:

Δυαδικά Δέντρα Αναζήτησης (Binary Search Trees) Ορισμός : Ένα δυαδικό δέντρο αναζήτησης t είναι ένα δυαδικό δέντρο, το οποίο είτε είναι κενό είτε: Δυαδικά Δέντρα Αναζήτησης (Binary Search Trees) Ορισμός : Ένα δυαδικό δέντρο αναζήτησης t είναι ένα δυαδικό δέντρο, το οποίο είτε είναι κενό είτε: (i) όλα τα περιεχόμενα στο αριστερό υποδέντρο του t είναι

Διαβάστε περισσότερα

Αλγόριθμοι και Πολυπλοκότητα

Αλγόριθμοι και Πολυπλοκότητα Αλγόριθμοι και Πολυπλοκότητα Ροή Δικτύου Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Μοντελοποίηση Δικτύων Μεταφοράς Τα γραφήματα χρησιμοποιούνται συχνά για την μοντελοποίηση

Διαβάστε περισσότερα

Δομές Αναζήτησης. κλειδί από ολικά διατεταγμένο σύνολο. Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες: Εισαγωγή ενός νέου στοιχείου

Δομές Αναζήτησης. κλειδί από ολικά διατεταγμένο σύνολο. Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες: Εισαγωγή ενός νέου στοιχείου Δομές Αναζήτησης Χειριζόμαστε ένα σύνολο στοιχείων κλειδί από ολικά διατεταγμένο σύνολο όπου το κάθε στοιχείο έχει ένα Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες: Εισαγωγή ενός νέου στοιχείου με

Διαβάστε περισσότερα

Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο

Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο Κατακερµατισµός 1 Οργάνωση Αρχείων (σύνοψη) Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο 1. Αρχεία Σωρού 2. Ταξινοµηµένα Αρχεία Φυσική διάταξη των εγγραφών

Διαβάστε περισσότερα

ΟιβασικέςπράξειςπουορίζουντονΑΤΔ δυαδικό δέντρο αναζήτησης είναι οι ακόλουθες:

ΟιβασικέςπράξειςπουορίζουντονΑΤΔ δυαδικό δέντρο αναζήτησης είναι οι ακόλουθες: Δυαδικά Δέντρα Αναζήτησης (Binary Search Trees) Ορισμός : Ένα δυαδικό δέντρο αναζήτησης t είναι ένα δυαδικό δέντρο, το οποίο είτε είναι κενό είτε: (i) όλα τα περιεχόμενα στο αριστερό υποδέντρο του t είναι

Διαβάστε περισσότερα

ΕΠΛ 231 Δοµές Δεδοµένων και Αλγόριθµοι 8-1

ΕΠΛ 231 Δοµές Δεδοµένων και Αλγόριθµοι 8-1 B-Δένδρα Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: 2-3 Δένδρα, Υλοποίηση και πράξεις Β-δένδρα ΕΠΛ 231 Δοµές Δεδοµένων και Αλγόριθµοι 8-1 2-3 Δένδρα Γενίκευση των δυαδικών δένδρων αναζήτησης.

Διαβάστε περισσότερα

Ισοζυγισµένο έντρο (AVL Tree)

Ισοζυγισµένο έντρο (AVL Tree) Εργαστήριο 7 Ισοζυγισµένο έντρο (AVL Tree) Εισαγωγή Εκτός από τα δυαδικά δέντρα αναζήτησης (inry serh trees) που εξετάσαµε σε προηγούµενο εργαστήριο, υπάρχουν αρκετά είδη δέντρων αναζήτησης µε ξεχωριστό

Διαβάστε περισσότερα

Ενότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις

Ενότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις Ενότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις Άσκηση 1 Γράψτε μία αναδρομική συνάρτηση που θα παίρνει ως παράμετρο ένα δείκτη στη ρίζα ενός δυαδικού δένδρου και θα επιστρέφει το βαθμό του

Διαβάστε περισσότερα

Κατακερµατισµός. Οργάνωση Αρχείων (σύνοψη) Οργάνωση αρχείων: πως είναι τοποθετημένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο

Κατακερµατισµός. Οργάνωση Αρχείων (σύνοψη) Οργάνωση αρχείων: πως είναι τοποθετημένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο Κατακερµατισµός 1 Οργάνωση Αρχείων (σύνοψη) Οργάνωση αρχείων: πως είναι τοποθετημένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο 1. Αρχεία Σωρού 2. Ταξινομημένα Αρχεία Φυσική διάταξη των εγγραφών

Διαβάστε περισσότερα

Τα δεδομένα (περιεχόμενο) μιας βάσης δεδομένων αποθηκεύεται στο δίσκο

Τα δεδομένα (περιεχόμενο) μιας βάσης δεδομένων αποθηκεύεται στο δίσκο Κατακερματισμός 1 Αποθήκευση εδομένων (σύνοψη) Τα δεδομένα (περιεχόμενο) μιας βάσης δεδομένων αποθηκεύεται στο δίσκο Παραδοσιακά, μία σχέση (πίνακας/στιγμιότυπο) αποθηκεύεται σε ένα αρχείο Αρχείο δεδομένων

Διαβάστε περισσότερα

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Γραφήματα. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Γραφήματα. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Δομές Δεδομένων Γραφήματα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Γραφήματα Κατευθυνόμενο Γράφημα Ένα κατευθυνόμενο γράφημα G είναι ένα ζευγάρι (V, E) όπου V είναι ένα

Διαβάστε περισσότερα

Μπαλτάς Αλέξανδρος 21 Απριλίου 2015

Μπαλτάς Αλέξανδρος 21 Απριλίου 2015 ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ B- Trees Δομές Δεδομένων Μπαλτάς Αλέξανδρος 21 Απριλίου 2015 ampaltas@ceid.upatras.gr Περιεχόμενα 1. Εισαγωγή 2. Ορισμός B- tree 3. Αναζήτηση σε B- tree 4. Ένθεση σε

Διαβάστε περισσότερα

Κεφάλαιο 8 Ισορροπημένα Δένδρα Αναζήτησης

Κεφάλαιο 8 Ισορροπημένα Δένδρα Αναζήτησης Κεφάλαιο 8 Ισορροπημένα Δένδρα Αναζήτησης Περιεχόμενα 8.1 Κατηγορίες ισορροπημένων δένδρων αναζήτησης... 155 8.1.1 Περιστροφές... 156 8.2 Δένδρα AVL... 157 8.2.1 Αποκατάσταση συνθήκης ισορροπίας... 158

Διαβάστε περισσότερα

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Συστήματα Διαχείρισης Βάσεων Δεδομένων Άσκηση 1 Δημήτρης Πλεξουσάκης Τμήμα Επιστήμης Υπολογιστών HY460 Συστήματα Διαχείρισης Βάσεων Δεδομένων Διδάσκοντες: Δημήτρης

Διαβάστε περισσότερα

ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου,

ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου, B- ένδρα Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: 2-3 ένδρα, Υλοποίηση και πράξεις Β-δένδρα ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου, 2006 8-1 2-3 ένδρα Γενίκευση των δυαδικών

Διαβάστε περισσότερα

Κατ οίκον Εργασία 3 Σκελετοί Λύσεων

Κατ οίκον Εργασία 3 Σκελετοί Λύσεων Κατ οίκον Εργασία 3 Σκελετοί Λύσεων Άσκηση 1 (α) Έστω Α(n) και Κ(n) ο αριθμός των ακμών και ο αριθμός των κόμβων ενός αυστηρά δυαδικού δένδρου με n φύλλα. Θέλουμε να αποδείξουμε για κάθε n 1 την πρόταση

Διαβάστε περισσότερα

ΑΛΓΟΡΙΘΜΟΙ ΜΕ C. ΝΙΚΟΛΑΟΣ ΣΑΜΑΡΑΣ Αναπληρωτής Καθηγητής. CMOR Lab. Computational Methodologies and Operations Research

ΑΛΓΟΡΙΘΜΟΙ ΜΕ C. ΝΙΚΟΛΑΟΣ ΣΑΜΑΡΑΣ Αναπληρωτής Καθηγητής. CMOR Lab. Computational Methodologies and Operations Research ΑΛΓΟΡΙΘΜΟΙ ΜΕ C ΝΙΚΟΛΑΟΣ ΣΑΜΑΡΑΣ Αναπληρωτής Καθηγητής CMOR Lab Computational Methodologies and Operations Research Δέντρα (5) Τ ένα δέντρο i ένας κόμβος στο επίπεδο k j ένας κόμβος στο επίπεδο k+1 } :

Διαβάστε περισσότερα

Δημιουργία Δυαδικών Δέντρων Αναζήτησης

Δημιουργία Δυαδικών Δέντρων Αναζήτησης Δημιουργία Δυαδικών Δέντρων Αναζήτησης Τα Δυαδικά δέντρα αναζήτησης είναι διατεταγμένα δυαδικά δέντρα όπου έχει σημασία η διάταξη των παιδιών κάθε κόμβου. Συγκεκριμένα για τα Δυαδικά δέντρα αναζήτησης,

Διαβάστε περισσότερα

Μάθημα 22: Δυαδικά δέντρα (Binary Trees)

Μάθημα 22: Δυαδικά δέντρα (Binary Trees) Trees Page 1 Μάθημα 22: Δυαδικά δέντρα (Binary Trees) Ένα δένδρο είναι δυαδικό αν όλοι οι κόμβοι του έχουν βαθμό (degree)

Διαβάστε περισσότερα

ΕΝΟΤΗΤΑ 5 ΥΝΑΜΙΚΑ ΛΕΞΙΚΑ ΙΣΟΖΥΓΙΣΜΕΝΑ ΕΝ ΡΑ

ΕΝΟΤΗΤΑ 5 ΥΝΑΜΙΚΑ ΛΕΞΙΚΑ ΙΣΟΖΥΓΙΣΜΕΝΑ ΕΝ ΡΑ ΕΝΟΤΗΤΑ 5 ΥΝΑΜΙΚΑ ΛΕΞΙΚΑ ΙΣΟΖΥΓΙΣΜΕΝΑ ΕΝ ΡΑ ενδρικές οµές για Υλοποίηση υναµικών Λεξικών υναµικά λεξικά λειτουργίες LookUp( ), Insert( ) και Delete( ) Αναζητούµε δένδρα για την αποτελεσµατική υλοποίηση

Διαβάστε περισσότερα

Αλγόριθμοι Ταξινόμησης Μέρος 2

Αλγόριθμοι Ταξινόμησης Μέρος 2 Αλγόριθμοι Ταξινόμησης Μέρος 2 Μανόλης Κουμπαράκης 1 Προχωρημένοι Αλγόριθμοι Ταξινόμησης Στη συνέχεια θα παρουσιάσουμε τρείς προχωρημένους αλγόριθμους ταξινόμησης: treesort, quicksort και mergesort. 2

Διαβάστε περισσότερα

Αλγόριθμοι και Πολυπλοκότητα

Αλγόριθμοι και Πολυπλοκότητα Αλγόριθμοι και Πολυπλοκότητα Διαίρει και Βασίλευε Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Διαίρει και Βασίλευε Divide and Conquer Η τεχνική διαίρει και βασίλευε αναφέρεται

Διαβάστε περισσότερα

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή Ισορροπημένα Δένδρα Μπορούμε να επιτύχουμε για κάθε λειτουργία; χρόνο εκτέλεσης Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή μετά από Περιστροφές x αριστερή περιστροφή από το x y α β y

Διαβάστε περισσότερα

ΛΥΣΗ ΤΗΣ ΔΕΥΤΕΡΗΣ ΑΣΚΗΣΗΣ Όλγα Γκουντούνα

ΛΥΣΗ ΤΗΣ ΔΕΥΤΕΡΗΣ ΑΣΚΗΣΗΣ Όλγα Γκουντούνα ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΜΑΘΗΜΑ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΑΚΑΔ. ΕΤΟΣ 2011-12 ΔΙΔΑΣΚΟΝΤΕΣ Ιωάννης Βασιλείου Καθηγητής Τιμολέων Σελλής Καθηγητής Άσκηση 1

Διαβάστε περισσότερα

Διάλεξη 11: Δέντρα Ι Εισαγωγή σε Δενδρικές Δομές Δεδομένων

Διάλεξη 11: Δέντρα Ι Εισαγωγή σε Δενδρικές Δομές Δεδομένων Διάλεξη 11: Δέντρα Ι Εισαγωγή σε Δενδρικές Δομές Δεδομένων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή σε δενδρικές δομές δεδομένων, Ορισμοί και πράξεις Αναπαράσταση δενδρικών δομών

Διαβάστε περισσότερα

ΠΛΗ111. Ανοιξη 2005. Μάθηµα 7 ο. έντρο. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

ΠΛΗ111. Ανοιξη 2005. Μάθηµα 7 ο. έντρο. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης ΠΛΗ111 οµηµένος Προγραµµατισµός Ανοιξη 2005 Μάθηµα 7 ο έντρο Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης έντρο Ορισµός Υλοποίηση µε Πίνακα Υλοποίηση µε είκτες υαδικό έντρο

Διαβάστε περισσότερα

ΕΝΟΤΗΤΑ 6 ΛΙΣΤΕΣ ΠΑΡΑΛΕΙΨΗΣ (SKIP LISTS)

ΕΝΟΤΗΤΑ 6 ΛΙΣΤΕΣ ΠΑΡΑΛΕΙΨΗΣ (SKIP LISTS) ΕΝΟΤΗΤΑ 6 ΛΙΣΤΕΣ ΠΑΡΑΛΕΙΨΗΣ (SKIP LISTS) Ταχεία Αναζήτηση Σε πίνακα: δυαδική αναζήτηση (binary search) σε ταξινοµηµένο πίνακα O(log n) Σε δένδρο: αναζήτηση σε ισοζυγισµένο δένδρο O(log n) Σε λίστα: Μπορούµε

Διαβάστε περισσότερα

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα)

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Αφηρημένες

Διαβάστε περισσότερα

Αναδρομικοί Αλγόριθμοι

Αναδρομικοί Αλγόριθμοι Αναδρομικός αλγόριθμος (recursive algorithm) Επιλύει ένα πρόβλημα λύνοντας ένα ή περισσότερα στιγμιότυπα του ίδιου προβλήματος. Αναδρομικός αλγόριθμος (recursive algorithm) Επιλύει ένα πρόβλημα λύνοντας

Διαβάστε περισσότερα

Κατακερματισμός. 4/3/2009 Μ.Χατζόπουλος 1

Κατακερματισμός. 4/3/2009 Μ.Χατζόπουλος 1 Κατακερματισμός 4/3/2009 Μ.Χατζόπουλος 1 H ιδέα που βρίσκεται πίσω από την τεχνική του κατακερματισμού είναι να δίνεται μια συνάρτησης h, που λέγεται συνάρτηση κατακερματισμού ή παραγωγής τυχαίων τιμών

Διαβάστε περισσότερα

Αλγόριθμοι και πολυπλοκότητα Μελανέρυθρα δεντρα

Αλγόριθμοι και πολυπλοκότητα Μελανέρυθρα δεντρα ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Αλγόριθμοι και πολυπλοκότητα Μελανέρυθρα δεντρα Ιωάννης Τόλλης Τμήμα Επιστήμης Υπολογιστών Μελανέρυθρα δεντρα v 3 8 z Red-Black Trees 1 Περιγραφή και Διαβασμα Από

Διαβάστε περισσότερα

Μελετάμε την περίπτωση όπου αποθηκεύουμε ένα (δυναμικό) σύνολο στοιχειών. Ένα στοιχείο γράφεται ως, όπου κάθε.

Μελετάμε την περίπτωση όπου αποθηκεύουμε ένα (δυναμικό) σύνολο στοιχειών. Ένα στοιχείο γράφεται ως, όπου κάθε. Ψηφιακά Δένδρα Μελετάμε την περίπτωση όπου αποθηκεύουμε ένα (δυναμικό) σύνολο στοιχειών τα οποία είναι ακολουθίες συμβάλλων από ένα πεπερασμένο αλφάβητο Ένα στοιχείο γράφεται ως, όπου κάθε. Μπορούμε να

Διαβάστε περισσότερα

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Εισαγωγή στην Επεξεργασία Ερωτήσεων 1 Επεξεργασία Ερωτήσεων Θα δούμε την «πορεία» μιας SQL ερώτησης (πως εκτελείται) Ερώτηση SQL Ερώτηση ΣΒΔ Αποτέλεσμα 2 Βήματα Επεξεργασίας Τα βασικά βήματα στην επεξεργασία

Διαβάστε περισσότερα

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή raniah@hua.gr 1 Αναζήτηση Δοθέντος ενός προβλήματος με περιγραφή είτε στον χώρο καταστάσεων

Διαβάστε περισσότερα

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Ταξινόμηση. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Ταξινόμηση. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Δομές Δεδομένων Ταξινόμηση Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Το πρόβλημα Είσοδος n αντικείμενα a 1, a 2,..., a n με κλειδιά (συνήθως σε ένα πίνακα, ή λίστα, κ.τ.λ)

Διαβάστε περισσότερα

εντρικά Ευρετήρια έντρα Αναζήτησης

εντρικά Ευρετήρια έντρα Αναζήτησης εντρικά Ευρετήρια 1 έντρα Αναζήτησης Ένα δέντρο αναζήτησης (search tree) τάξεως p είναι ένα δέντρο τέτοιο ώστε κάθε κόμβος του περιέχει το πολύ p - 1 τιμές αναζήτησης και ρ δείκτεςωςεξής P 1 K 1 P j K

Διαβάστε περισσότερα

Αλγόριθμοι και Πολυπλοκότητα

Αλγόριθμοι και Πολυπλοκότητα Αλγόριθμοι και Πολυπλοκότητα Ανάλυση Αλγορίθμων Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ανάλυση Αλγορίθμων Η ανάλυση αλγορίθμων περιλαμβάνει τη διερεύνηση του τρόπου

Διαβάστε περισσότερα

Δηµοσθένης Σταµάτης Τµήµα Πληροφορικής ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΔΕΝΤΡΑ (TREES) B C D E F G H I J K L M

Δηµοσθένης Σταµάτης Τµήµα Πληροφορικής ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΔΕΝΤΡΑ (TREES) B C D E F G H I J K L M Δοµές Δεδοµένων & Ανάλυση Αλγορίθµων 3ο Εξάµηνο Δέντρα Δυαδικά Δέντρα Δυαδικά Δέντρα Αναζήτησης (inary Search Trees) http://aetos.it.teithe.gr/~demos/teaching_r.html Δηµοσθένης Σταµάτης Τµήµα Πληροφορικής

Διαβάστε περισσότερα

Ενότητα 7 Ουρές Προτεραιότητας

Ενότητα 7 Ουρές Προτεραιότητας Ενότητα Ουρές Προτεραιότητας ΗΥ4 - Παναγιώτα Φατούρου Ουρές Προτεραιότητας Θεωρούµε ένα χώρο κλειδιών U και έστω ότι µε κάθε κλειδί Κ (τύπου Key) έχει συσχετισθεί κάποια πληροφορία Ι (τύπου Type). Έστω

Διαβάστε περισσότερα

Ερώτημα 1. Μας δίνεται μια συλλογή από k ακολοθίες, k >=2 και αναζητούμε το πρότυπο Ρ, μεγέθους n.

Ερώτημα 1. Μας δίνεται μια συλλογή από k ακολοθίες, k >=2 και αναζητούμε το πρότυπο Ρ, μεγέθους n. Πρώτο Σύνολο Ασκήσεων 2014-2015 Κατερίνα Ποντζόλκοβα, 5405 Αθανασία Ζαχαριά, 5295 Ερώτημα 1 Μας δίνεται μια συλλογή από k ακολοθίες, k >=2 και αναζητούμε το πρότυπο Ρ, μεγέθους n. Ο αλγόριθμος εύρεσης

Διαβάστε περισσότερα

Λυσεις προβλημάτων τελικής φάσης Παγκύπριου Μαθητικού Διαγωνισμού Πληροφορικής 2007

Λυσεις προβλημάτων τελικής φάσης Παγκύπριου Μαθητικού Διαγωνισμού Πληροφορικής 2007 Λυσεις προβλημάτων τελικής φάσης Παγκύπριου Μαθητικού Διαγωνισμού Πληροφορικής 2007 Πρόβλημα 1 Το πρώτο πρόβλημα λύνεται με τη μέθοδο του Δυναμικού Προγραμματισμού. Για να το λύσουμε με Δυναμικό Προγραμματισμό

Διαβάστε περισσότερα

Δοµές Δεδοµένων. 14η Διάλεξη Δέντρα Δυαδικής Αναζήτησης. Ε. Μαρκάκης

Δοµές Δεδοµένων. 14η Διάλεξη Δέντρα Δυαδικής Αναζήτησης. Ε. Μαρκάκης Δοµές Δεδοµένων 14η Διάλεξη Δέντρα Δυαδικής Αναζήτησης Ε. Μαρκάκης Περίληψη Δέντρα Δυαδικής Αναζήτησης Υλοποιήσεις εισαγωγής και αναζήτησης Χαρακτηριστικά επιδόσεων ΔΔΑ Εισαγωγή στη ρίζα ΔΔΑ Υλοποιήσεις

Διαβάστε περισσότερα

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 21: Εισαγωγή σε Δενδρικές Δομές Δεδομένων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: -Εισαγωγή σε δενδρικές δομές δεδομένων, -Ορισμοί και πράξεις - Αναπαράσταση δενδρικών δομών δεδομένων

Διαβάστε περισσότερα

Δομές Δεδομένων (Data Structures)

Δομές Δεδομένων (Data Structures) Δομές Δεδομένων (Data Structures) Δένδρα (Trees) Βασικές Έννοιες. Δυαδικά Δένδρα. Δυαδικά Δένδρα Αναζήτησης. AVL Δένδρα. Δένδρα: Βασικές Έννοιες Ορισμοί Λειτουργίες Υλοποιήσεις ΑΤΔ Δένδρο: μοντέλο ιεραρχικής

Διαβάστε περισσότερα

Δέντρα Απόφασης (Decision(

Δέντρα Απόφασης (Decision( Δέντρα Απόφασης (Decision( Trees) Το μοντέλο που δημιουργείται είναι ένα δέντρο Χρήση της τεχνικής «διαίρει και βασίλευε» για διαίρεση του χώρου αναζήτησης σε υποσύνολα (ορθογώνιες περιοχές) Ένα παράδειγμα

Διαβάστε περισσότερα

Δομές Δεδομένων. Ενότητα 10: Πλήρη Δυαδικά Δέντρα, Μέγιστα/Ελάχιστα Δέντρα & Εισαγωγή στο Σωρό- Ο ΑΤΔ Μέγιστος Σωρός. Καθηγήτρια Μαρία Σατρατζέμη

Δομές Δεδομένων. Ενότητα 10: Πλήρη Δυαδικά Δέντρα, Μέγιστα/Ελάχιστα Δέντρα & Εισαγωγή στο Σωρό- Ο ΑΤΔ Μέγιστος Σωρός. Καθηγήτρια Μαρία Σατρατζέμη Ενότητα 10: Πλήρη Δυαδικά Δέντρα, Μέγιστα/Ελάχιστα Δέντρα & Εισαγωγή στο Σωρό- Ο ΑΤΔ Μέγιστος Σωρός Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

Διαβάστε περισσότερα

Διάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις

Διάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 16: Σωροί Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις Ουρά Προτεραιότητας Η δομή

Διαβάστε περισσότερα

Αναζήτηση. 1. Σειριακή αναζήτηση 2. Δυαδική Αναζήτηση. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη

Αναζήτηση. 1. Σειριακή αναζήτηση 2. Δυαδική Αναζήτηση. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Αναζήτηση. Σειριακή αναζήτηση. Δυαδική Αναζήτηση Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Παραδοχή Στη συνέχεια των διαφανειών (διαλέξεων) η ασυμπτωτική έκφραση (συμβολισμός Ο, Ω, Θ) του χρόνου

Διαβάστε περισσότερα

Διάλεξη 17: O Αλγόριθμος Ταξινόμησης HeapSort

Διάλεξη 17: O Αλγόριθμος Ταξινόμησης HeapSort Διάλεξη 17: O Αλγόριθμος Ταξινόμησης HeapSort Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Η διαδικασία PercolateDown, Δημιουργία Σωρού O Αλγόριθμος Ταξινόμησης HeapSort Υλοποίηση, Παραδείγματα

Διαβάστε περισσότερα

ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου,

ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου, AVL- ένδρα Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Υλοποίηση ΑVL-δένδρων Εισαγωγή κόµβων και περιστροφές ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου, 2006 7-1 AVL ένδρα Είναι δυνατό

Διαβάστε περισσότερα

Δεντρικά Ευρετήρια. Δέντρα Αναζήτησης

Δεντρικά Ευρετήρια. Δέντρα Αναζήτησης Δεντρικά Ευρετήρια 1 Δέντρα Αναζήτησης Ένα δέντρο αναζήτησης (search tree) τάξεως p είναι ένα δέντρο τέτοιο ώστε κάθε κόµβος του περιέχει το πολύ p - 1 τιµές αναζήτησης και ρ δείκτες ως εξής P 1 K 1 P

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 6α: Αναζήτηση Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commos. Για εκπαιδευτικό

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 8: Αφαίρεση δεδοµένων

ΚΕΦΑΛΑΙΟ 8: Αφαίρεση δεδοµένων ΚΕΦΑΛΑΙΟ 8: Αφαίρεση δεδοµένων 8.1 Βασικές έννοιες δοµών δεδοµένων 8.2 Σχετικές έννοιες 8.3 Υλοποίηση δοµών δεδοµένων 8.4 Μια σύντοµη µελέτη περίπτωσης 8.5 Προσαρµοσµένοι τύποι δεδοµένων 1 Βασικές δοµές

Διαβάστε περισσότερα

Πληροφορική 2. Δομές δεδομένων και αρχείων

Πληροφορική 2. Δομές δεδομένων και αρχείων Πληροφορική 2 Δομές δεδομένων και αρχείων 1 2 Δομή Δεδομένων (data structure) Δομή δεδομένων είναι μια συλλογή δεδομένων που έχουν μεταξύ τους μια συγκεκριμένη σχέση Παραδείγματα δομών δεδομένων Πίνακες

Διαβάστε περισσότερα

Μη AVL Δέντρα Εισαγωγή κόμβου 4, 6 : 4 12 :

Μη AVL Δέντρα Εισαγωγή κόμβου 4, 6 : 4 12 : AVL δέντρα AVL Δέντρα L R G.M. AdelsonVelkii και E.M. Landis 192 Μη AVL Δέντρα Εισαγωγή κόμβου, : : Αριστερή στροφή 1 8, 1 : 8 1 7 : 7 8 1 Δεξιά στροφή 8 7 Αριστερή στροφή 1 8 7 1 Περιπτώσεις LL : ο νέος

Διαβάστε περισσότερα

Ευρετήρια. Πρωτεύον ευρετήριο (primary index): ορισμένο στο κλειδί διάταξης του αρχείου. Ευρετήρια. Ευρετήρια. Ευρετήρια

Ευρετήρια. Πρωτεύον ευρετήριο (primary index): ορισμένο στο κλειδί διάταξης του αρχείου. Ευρετήρια. Ευρετήρια. Ευρετήρια Ευρετήρια Ένα ευρετήριο (index) είναι μια βοηθητική δομή αρχείου που κάνει πιο αποδοτική την αναζήτηση μιας εγγραφής σε ένα αρχείο Το ευρετήριο καθορίζεται (συνήθως) σε ένα γνώρισμα του αρχείου που καλείται

Διαβάστε περισσότερα

επιστρέφει το αμέσως μεγαλύτερο από το x στοιχείο του S επιστρέφει το αμέσως μικρότερο από το x στοιχείο του S

επιστρέφει το αμέσως μεγαλύτερο από το x στοιχείο του S επιστρέφει το αμέσως μικρότερο από το x στοιχείο του S Μελετάμε την περίπτωση όπου αποθηκεύουμε ένα (δυναμικό) σύνολο στοιχειών,, τα οποίo είναι υποσύνολο του. Υποστηριζόμενες λειτουργίες αναζήτηση(s,x): εισαγωγή(s,x): διαγραφή(s,x): διάδοχος(s,x): προκάτοχος(s,x):

Διαβάστε περισσότερα

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Βασικές Ιδιότητες και Διάσχιση Κεφάλαιο 5 ( και ) Ε. Μαρκάκης Επίκουρος Καθηγητής

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Βασικές Ιδιότητες και Διάσχιση Κεφάλαιο 5 ( και ) Ε. Μαρκάκης Επίκουρος Καθηγητής ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Βασικές Ιδιότητες και Διάσχιση Κεφάλαιο 5 (5.1-5.2 και 5.4-5.6) Ε. Μαρκάκης Επίκουρος Καθηγητής Περίληψη Δέντρα Βασικοί ορισµοί Μαθηµατικές ιδιότητες Διάσχιση δέντρων Preorder, postorder,

Διαβάστε περισσότερα

Δομές δεδομένων. Ενότητα 5η: Υλοποίηση Λεξικών με Ισοζυγισμένα Δένδρα Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών

Δομές δεδομένων. Ενότητα 5η: Υλοποίηση Λεξικών με Ισοζυγισμένα Δένδρα Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Ενότητα 5η: Υλοποίηση Λεξικών με Ισοζυγισμένα Δένδρα Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών ΕΝΟΤΗΤΑ 5 ΥΛΟΠΟΙΗΣΗ ΛΕΞΙΚΩΝ ΜΕ ΙΣΟΖΥΓΙΣΜΕΝΑ ΔΕΝΔΡΑ

Διαβάστε περισσότερα

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ (Οι ερωτήσεις µε κίτρινη υπογράµµιση είναι εκτός ύλης για φέτος) ΕΙΣΑΓΩΓΗ Q1. Οι Πρωταρχικοί τύποι (primitive types) στη Java 1. Είναι όλοι οι ακέραιοι και όλοι οι πραγµατικοί

Διαβάστε περισσότερα

Αλγόριθμοι και Πολυπλοκότητα

Αλγόριθμοι και Πολυπλοκότητα Αλγόριθμοι και Πολυπλοκότητα Άπληστοι Αλγόριθμοι Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Άπληστοι Αλγόριθμοι Είναι δύσκολο να ορίσουμε ακριβώς την έννοια του άπληστου

Διαβάστε περισσότερα