AVL-trees C++ implementation
|
|
- Διοκλῆς Αντωνοπούλου
- 8 χρόνια πριν
- Προβολές:
Transcript
1 Τ Μ Η Μ Α Μ Η Χ Α Ν Ι Κ Ω Ν Η / Υ Κ Α Ι Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ AVL-trees C++ implementation Δομές Δεδομένων Μάριος Κενδέα 31 Μαρτίου 2015 kendea@ceid.upatras.gr
2 Εισαγωγή (1/3) Δυαδικά Δένδρα Αναζήτησης: πολύ καλή δομή δεδομένων για την υλοποίηση maps, sets, και άλλα παρόμοια. Κύρια δυσκολία : είναι αποδοτικά μόνο όταν είναι ισοζυγισμένα Ορίζονται σχέσεις μεταξύ κόμβων Parent: ο γονεϊκός κόμβος του κόμβου αναφοράς LSON: το αριστερό παιδί του κόμβου αναφοράς RSON: το δεξί παιδί του κόμβου αναφοράς Ancestor: κάποιος κόμβος πρόγονος του κόμβου αναφοράς 31 Μαρτίου
3 Εισαγωγή (2/3) Ύψος δέντρου: για ένα δέντρο με n στοιχεία χρειάζονται O(logn) επίπεδα. Το ύψος του δέντρου καθορίζει και το κόστος αναζήτησης γιατί έχουμε μια σύγκριση σε κάθε επίπεδο Ιδιότητα δυαδικού δέντρου αναζήτησης: Για να είναι ένα δέντρο δυαδικό δέντρο αναζήτησης (Binary Search Tree BST) πρέπει να πληροί την ιδιότητα δυαδικού δέντρου αναζήτησης: Έστω n κόμβος ενός δυαδικού δέντρου αναζήτησης. Τότε όλοι οι κόμβοι που βρίσκονται στο αριστερό υποδέντρο του n έχουν τιμή περιεχομένου μικρότερη ή ίση με το περιεχόμενο του n. Αντίστοιχα, οι κόμβοι που βρίσκονται στο δεξιό υποδέντρο του n έχουν τιμή περιεχομένου μεγαλύτερη ή ίση από το περιεχόμενο του n. Έτσι το δυαδικό δέντρο αναζήτησης εγγυάται χρόνο αναζήτησης O(logn) με μια σύγκριση σε κάθε ένα από τα O(logn) επίπεδα. Στη συνέχεια η ένθεση (insert) και η διαγραφή απαιτούν σταθερό χρόνο. 31 Μαρτίου
4 Εισαγωγή (3/3) Τα ισοζυγισμένα δέντρα απαντούν στο πρόβλημα του ύψους χειρότερης περίπτωσης ενός δυαδικού δέντρου αναζήτησης Διατηρούν μια αναλογία μεταξύ του αριστερού και του δεξιού υποδέντρου σε κάθε κόμβο ώστε το συνολικό ύψος να είναι πολύ κοντά στο logn Ισοζυγισμένα με βάρη (weight-balanced) και ισοζυγισμένα με ύψος (height balanced) To AVL tree είναι ένα ισοζυγισμένο δέντρο βάσει ύψους (ισοσκελισμένο) που σε κάθε κόμβο του, το ύψος του αριστερού υποδέντρου επιτρέπεται να διαφέρει μόνο κατά 1 από το ύψος του δεξιού υποδέντρου. 31 Μαρτίου
5 AVL Trees (1/8) Τα AVL trees, είναι μια απλή και αποδοτική δομή δεδομένων για την διατήρηση της ισορροπίας. Είναι η πρώτη που προτάθηκε ( An algorithm for the organisation of information - Proceedings of the USSR Academy of Sciences 146: , 1962) από τους G.M. Adelson-Velskii και E.M. Landis 31 Μαρτίου
6 AVL Trees (2/8) Σε κάθε κόμβο του δέντρου αντιστοιχεί ένας αριθμός που δείχνει τον παράγοντα ισοσκελισμού. Αν hleft είναι το ύψος του αριστερού υποδέντρου του κόμβου v και hright το ύψος του δεξιού υποδέντρου, τότε ο παράγοντας ισοσκελισμού υπολογίζεται από την πράξη hright - hleft Εφόσον θέλουμε η διαφορά ύψους των υποδέντρων θέλουμε να είναι το πολύ 1, επιτρεπτές τιμές είναι τα -1, 0, 1. Το AVL tree εγγυάται ύψος δέντρου h τέτοιο ώστε logn <= h < 1.44log(n+2) -1 Άρα επί της ουσίας O(logn)! h h-1 h-2 31 Μαρτίου
7 AVL Trees (3/8) Insert Η εισαγωγή γίνεται κανονικά με εύρεση του κατάλληλου σημείου για ένθεση και στη συνέχεια κατασκευή νέου κόμβου στο σημείο αυτό. 0 Πολλές φορές χαλάει η ισορρόπία του AVL tree και εμφανίζονται βάρη 2 ή -2. Για να αποκατασταθεί ο ισοσκελισμός και η ιδιότητα των AVL δέντρων πρέπει να γίνουν κάποιες πράξεις που ονομάζονται περιστρόφές Tree A (AVL) Tree B (not AVL) Μαρτίου
8 AVL Trees (4/8) Insert Mόνο κόμβοι στο path από το σημείο εισαγωγής προς τον κόμβο της ρίζας μπορεί να αλλάξουν ύψος Οπότε, πάμε προς τα πάνω, διορθώνοντας τα ύψη (h right -h left ) είναι 2 ή 2, κάνουμε περιστροφή γύρο από τον κόμβο Αν ο κόμβος που χρειάζεται περιστροφή είναι ο. Υπάρχουν 4 περιπτώσεις: Εξωτερικές περιπτώσεις (απαιτεί απλή περιστροφή) : 1. Εισαγωγή στο αριστερό υποδέντρο του αριστερού παιδιού του. 2. Εισαγωγή στο δεξί υποδέντρο του δεξιού παιδιού του. Εσωτερικές περιπτώσεις (απαιτεί διπλή περιστροφή) : 3. Εισαγωγή στο δεξί υποδέντρο του αριστερού παιδιού του. 4. Εισαγωγή στο αριστερό υποδέντρο του δεξιού παιδιού του. Με αντίστοιχο τρόπο λειτουργεί και η διαγραφή: αναζήτηση, διαγραφή, εξισορρόπηση. 31 Μαρτίου
9 AVL Trees (5/8) Απλή περιστροφή Μαρτίου
10 AVL Trees (6/8) Διπλή περιστροφή Μαρτίου
11 AVL Trees (7/8) Περιστροφές 31 Μαρτίου
12 AVL Trees (8/8) ΨΕΥΔΟΚΩΔΙΚΑΣ ΕΠΙΛΟΓΗΣ ΠΕΡΙΣΤΡΟΦΗΣ IF tree is right heavy { IF tree's right subtree is left heavy Perform Double Left rotation ELSE Perform Single Left rotation ELSE IF tree is left heavy { IF tree's left subtree is right heavy Perform Double Right rotation ELSE Perform Single Right rotation 31 Μαρτίου
13 AVL Trees & C++ (1/9) Αρχικά, χρειαζόμαστε μια κλάση για τους κόμβους με βάση την οποία θα δομηθεί το δέντρο: template <class KeyType> class AvlNode { private: Comparable<KeyType> * mydata; // Data field AvlNode<KeyType> * mysubtree[2]; // Subtree pointers short mybal; // Balance factor //... many details omitted ; Παρατηρούμε ότι περιέχει ένα πίνακα για τα δύο παιδιά του κόμβου και μια μεταβλητή για τον παράγοντα ισοσκελισμού. balance (1,0,-1) Η κλάση αυτή μας αρκεί για το δέντρο! 31 Μαρτίου left key right
14 AVL Trees & C++ (2/9) Ορίζουμε τα βοηθητικά στοιχεία σε μια κλάση Comparable enum cmp_t { MIN_CMP = -1, // less than EQ_CMP = 0, // equal to MAX_CMP = 1 // greater than ; template <class KeyType> class Comparable { private: KeyType mykey; public: Comparable(KeyType key) : mykey(key) {; cmp_t Compare(KeyType key) const; KeyType Key() const { return mykey; ; 31 Μαρτίου
15 AVL Trees & C++ (3/9) Κώδικας για την αριστερή περιστροφή: enum dir_t { LEFT = 0, RIGHT = 1 ; template <class KeyType> void AvlNode<KeyType>::RotateLeft(AvlNode<KeyType> * & root) { AvlNode<KeyType> * oldroot = root; root = root->mysubtree[right]; oldroot->mysubtree[right] = root->mysubtree[left]; root->mysubtree[left] = oldroot; // update balances oldroot->mybal -= (1 + MAX(root->myBal, 0)); root->mybal -= (1 - MIN(oldRoot->myBal, 0)); 31 Μαρτίου
16 AVL Trees & C++ (4/9) Κώδικας για την δεξιά περιστροφή: template <class KeyType> void AvlNode<KeyType>::RotateRight(AvlNode<KeyType> * & root) { AvlNode<KeyType> * oldroot = root; // perform rotation root = root->mysubtree[left]; oldroot->mysubtree[left] = root->mysubtree[right]; root->mysubtree[right] = oldroot; // update balances oldroot->mybal += (1 - MIN(root->myBal, 0)); root->mybal += (1 + MAX(oldRoot->myBal, 0)); 31 Μαρτίου
17 AVL Trees & C++ (5/9) Ένωση των δύο προηγούμενων συναρτήσεων σε μια: template <class KeyType> void AvlNode<KeyType>::RotateOnce(AvlNode<KeyType> * & root, dir_t dir) { AvlNode<KeyType> * oldroot = root; dir_t otherdir = Opposite(dir); short factor = (RIGHT - LEFT) * (1 - (2 * dir)); // rotate root = tree->mysubtree[otherdir]; oldroot->mysubtree[otherdir] = tree->mysubtree[dir]; root->mysubtree[dir] = oldroot; // update balances oldroot->mybal -= factor * (1 + MAX(factor * root->mybal, 0)); root->mybal += factor * (1 + MAX(factor * oldroot->mybal, 0)); 31 Μαρτίου
18 AVL Trees & C++ (6/9) Διπλή περιστροφή με χρήση της RotateOnce: template <class KeyType> void AvlNode<KeyType>::RotateTwice(AvlNode<KeyType> * & root, dir_t dir) { dir_t otherdir = Opposite(dir); RotateOnce(root->mySubtree[otherDir], otherdir); RotateOnce(root, dir); 31 Μαρτίου
19 AVL Trees & C++ (7/9) Μέθοδος για τη σύγκριση του περιεχομένου ενός κόμβου με το ζητούμενο: template <class KeyType> cmp_t AvlNode<KeyType>::Compare(KeyType key, cmp_t cmp) const { switch (cmp) { case EQ_CMP : // Standard comparison return mydata->compare(key); case MIN_CMP : // Find the minimal element in this tree return (mysubtree[left] == NULL)? EQ_CMP : MIN_CMP; case MAX_CMP : // Find the maximal element in this tree return (mysubtree[right] == NULL)? EQ_CMP : MAX_CMP; 31 Μαρτίου
20 AVL Trees & C++ (8/9) Μέθοδος insert: template <class KeyType> Comparable<KeyType> * AvlNode<KeyType>::Insert(Comparable<KeyType> * item, AvlNode<KeyType> * & root, int & change) { // See if the tree is empty if (root == NULL) { // Insert new node here root = new AvlNode<KeyType>(item); change = HEIGHT_CHANGE; return NULL; // Initialize Comparable<KeyType> * found = NULL; int increase = 0; // Compare items and determine which direction to search cmp_t result = root->compare(item->key()); dir_t dir = (result == MIN_CMP)? LEFT : RIGHT; 31 Μαρτίου
21 AVL Trees & C++ (9/9) Μέθοδος insert (συνέχεια): if (result!= EQ_CMP) { // Insert into "dir" subtree found = Insert(item, root->mysubtree[dir], change); if (found) return found; // already here - dont insert increase = result * change; // set balance factor increment else { // key already in tree at this node increase = HEIGHT_NOCHANGE; // 0 return root->mydata; root->mybal += increase; // update balance factor change = (increase && root->mybal)? (1 - ReBalance(root)) : HEIGHT_NOCHANGE; return NULL; // the key was successfully inserted 31 Μαρτίου
22 Αναφορές Ολοκληρωμένος κώδικας AVL tree σε C++: Βασικές Πληροφορίες για AVL tree: AVL με παραδείγματα: Standard AVL C++ Animated AVL Tree Java applet 31 Μαρτίου
23 ? 31 Μαρτίου
Δυαδικά Δένδρα Αναζήτησης, Δένδρα AVL
Δυαδικά Δένδρα Αναζήτησης, Δένδρα AVL Υλικό από τις σηµειώσεις Ν. Παπασπύρου, 2006 Δέντρα δυαδικής αναζήτησης Δενδρικές δοµές δεδοµένων στις οποίες Όλα τα στοιχεία στο αριστερό υποδέντρο της ρίζας είναι
Διαβάστε περισσότεραιαφάνειες παρουσίασης #10 (β)
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ http://www.softlab.ntua.gr/~nickie/courses/progtech/ ιδάσκοντες: Γιάννης Μαΐστρος (maistros@cs.ntua.gr) Στάθης Ζάχος (zachos@cs.ntua.gr) Νίκος Παπασπύρου (nickie@softlab.ntua.gr)
Διαβάστε περισσότεραΔομές Δεδομένων και Αλγόριθμοι
Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 16 Δένδρα (Trees) 1 / 42 Δένδρα (Trees) Ένα δένδρο είναι ένα συνδεδεμένο γράφημα χωρίς κύκλους Για κάθε
Διαβάστε περισσότεραΔομές Δεδομένων. Δημήτρης Μιχαήλ. Δέντρα Αναζήτησης. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Δομές Δεδομένων Δέντρα Αναζήτησης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Το πρόβλημα Αναζήτηση Θέλουμε να διατηρήσουμε αντικείμενα με κλειδιά και να μπορούμε εκτός από
Διαβάστε περισσότεραΔιάλεξη 13: Δέντρα ΙΙΙ - Ισοζυγισμένα Δέντρα, AVL Δέντρα
ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 13: Δέντρα ΙΙΙ - Ισοζυγισμένα Δέντρα, AVL Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ισοζυγισμένα Δέντρα - Υλοποίηση AVL-δέντρων
Διαβάστε περισσότεραΙσορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή
Ισορροπημένα Δένδρα Μπορούμε να επιτύχουμε για κάθε λειτουργία; χρόνο εκτέλεσης Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή μετά από Περιστροφές x αριστερή περιστροφή από το x y α β y
Διαβάστε περισσότεραΔομές Δεδομένων (Data Structures)
Δομές Δεδομένων (Data Structures) Δένδρα (Trees) Βασικές Έννοιες. Δυαδικά Δένδρα. Δυαδικά Δένδρα Αναζήτησης. AVL Δένδρα. Δένδρα: Βασικές Έννοιες Ορισμοί Λειτουργίες Υλοποιήσεις ΑΤΔ Δένδρο: μοντέλο ιεραρχικής
Διαβάστε περισσότεραΔομές Δεδομένων & Αλγόριθμοι
- Δυαδικά Δένδρα (binary trees) - Δυαδικά Δένδρα Αναζήτησης (binary search trees) 1 Δυαδικά Δένδρα Ορισμοί Λειτουργίες Υλοποιήσεις ΑΤΔ Εφαρμογές 2 Ορισμοί (αναδρομικός ορισμός) Ένα δένδρο t είναι ένα πεπερασμένο
Διαβάστε περισσότεραΔομές Δεδομένων Ενότητα 5
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 5: Δυαδικά Δένδρα Απόστολος Παπαδόπουλος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
Διαβάστε περισσότεραΣυγκρίσιμα Αντικείμενα (comparable)
Συγκρίσιμα Αντικείμενα (comparable) public class Student implements Comparable{ public String lastname; public String firstname; public int am; public int compareto(object s) throws ClassCastException{
Διαβάστε περισσότεραΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ EPL035: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ
ΠΝΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜ ΠΛΗΡΟΦΟΡΙΚΗΣ EPL035: ΔΟΜΣ ΔΔΟΜΝΩΝ ΚΙ ΛΓΟΡΙΘΜΟΙ ΗΜΡΟΜΗΝΙ: 14/11/2018 ΔΙΓΝΩΣΤΙΚΟ ΠΝΩ Σ ΔΝΔΡΙΚΣ ΔΟΜΣ ΚΙ ΓΡΦΟΥΣ Διάρκεια: 45 λεπτά Ονοματεπώνυμο:. ρ. Ταυτότητας:. ΒΘΜΟΛΟΓΙ ΣΚΗΣΗ ΒΘΜΟΣ
Διαβάστε περισσότεραΔιδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 12: Δέντρα ΙΙ -Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Δυαδικά Δένδρα - Δυαδικά Δένδρα Αναζήτησης(ΔΔΑ) - Εύρεση Τυχαίου, Μέγιστου, Μικρότερου στοιχείου - Εισαγωγή
Διαβάστε περισσότεραΔηµοσθένης Σταµάτης Τµήµα Πληροφορικής ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΔΕΝΤΡΑ (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 Δηµοσθένης Σταµάτης Τµήµα Πληροφορικής
Διαβάστε περισσότεραΕκτενείς Δομές Δεδομένων
Εκτενείς Δομές Δεδομένων Ειδικά Δυαδικά Δένδρα Δυαδικά Δένδρα Αναζήτησης Το αριστερό υποδένδρο κάθε κόμβου έχει τιμές μικρότερες από την τιμή του κόμβου. Το δεξιό υποδένδρο κάθε κόμβου έχει τιμές μεγαλύτερες
Διαβάστε περισσότεραΔιάλεξη 12: Δέντρα ΙΙ Δυαδικά Δέντρα
Διάλεξη 12: Δέντρα ΙΙ Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Δυαδικά Δένδρα Δυαδικά Δένδρα Αναζήτησης (ΔΔΑ) Εύρεση Τυχαίου, Μέγιστου, Μικρότερου στοιχείου Εισαγωγή στοιχείου
Διαβάστε περισσότεραΕκτενείς Δομές Δεδομένων
Εκτενείς Δομές Δεδομένων Εισαγωγή Δομές που βασίζονται σε συγκρίσεις : Ισοζυγισμένα δέντρα εύρεσης ( δέντρα τα φύλλα των οποίων απέχουν της ίδιας τάξεως μεγέθους, απόσταση απο τη ρίζα) Υψοζυγισμένα δέντρα
Διαβάστε περισσότεραΙσοζυγισμένα υαδικά έντρα Αναζήτησης
Ισοζυγισμένα υαδικά έντρα Αναζήτησης ομές εδομένων 3ο εξάμηνο ιδάσκων: Χρήστος ουλκερίδης ιαφάνειες προσαρμοσμένες από το υλικό της Μαρίας Χαλκίδη Ισοζυγισμένα υαδικά έντρα Αναζήτησης Ισοζυγισμένα Α είναι
Διαβάστε περισσότεραΔιάλεξη 17: Δυαδικά Δέντρα. Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ
Διάλεξη 7: Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Δυαδικά Δένδρα Δυαδικά Δένδρα Αναζήτησης Πράξεις Εισαγωγής, Εύρεσης Στοιχείου, Διαγραφής Μικρότερου Στοιχείου Διδάσκων:
Διαβάστε περισσότεραΔιδάσκων: Κωνσταντίνος Κώστα
Διάλεξη Ε4: Επανάληψη Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή σε δενδρικές δομές δεδομένων, Δυαδικά Δένδρα Αναζήτησης Ισοζυγισμένα Δένδρα & 2-3 Δένδρα Διδάσκων: Κωνσταντίνος
Διαβάστε περισσότεραΜάθημα 22: Δυαδικά δέντρα (Binary Trees)
Trees Page 1 Μάθημα 22: Δυαδικά δέντρα (Binary Trees) Ένα δένδρο είναι δυαδικό αν όλοι οι κόμβοι του έχουν βαθμό (degree)
Διαβάστε περισσότεραΔιάλεξη 22: Δυαδικά Δέντρα. Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 22: Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Δυαδικά Δένδρα - Δυαδικά Δένδρα Αναζήτησης - Πράξεις Εισαγωγής, Εύρεσης Στοιχείου, Διαγραφής Μικρότερου Στοιχείου
Διαβάστε περισσότεραΠανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 6. Δυαδικά Δέντρα 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 18/11/2016 Εισαγωγή Τα
Διαβάστε περισσότεραΔομές Δεδομένων. Δημήτρης Μιχαήλ. Δέντρα Αναζήτησης. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Δομές Δεδομένων Δέντρα Αναζήτησης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Το πρόβλημα Αναζήτηση Θέλουμε να διατηρήσουμε αντικείμενα με κλειδιά και να μπορούμε εκτός από
Διαβάστε περισσότεραΔομές Δεδομένων - Εργαστήριο 5. Ουρές Προτεραιότητας
Ουρές Προτεραιότητας Ουρά Προτεραιότητας (Priority Queue) Μια συλλογή αντικειμένων που χαρακτηρίζονται από μια συγκρίσιμη προτεραιότητα. Έχει την λογική εικόνα μιας δομής δεδομένων όπου, αντικείμενα εισέρχονται
Διαβάστε περισσότεραΔομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής
Ενότητα 8: Γραμμική Αναζήτηση και Δυαδική Αναζήτηση-Εισαγωγή στα Δέντρα και Δυαδικά Δέντρα-Δυαδικά Δέντρα Αναζήτησης & Υλοποίηση ΔΔΑ με δείκτες Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό
Διαβάστε περισσότεραΔιασυνδεδεμένες Δομές. Δυαδικά Δέντρα. Προγραμματισμός II 1
Διασυνδεδεμένες Δομές Δυαδικά Δέντρα Προγραμματισμός II 1 lalis@inf.uth.gr Δέντρα Τα δέντρα είναι κλασικές αναδρομικές δομές Ένα δέντρο αποτελείται από υποδέντρα, καθένα από τα οποία μπορεί να θεωρηθεί
Διαβάστε περισσότεραΔιάλεξη 13: Δέντρα ΙΙΙ Ισοζυγισμένα Δέντρα, AVL Δέντρα
Διάλεξη 13: Δέντρα ΙΙΙ Ισοζυγισμένα Δέντρα, AVL Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ισοζυγισμένα Δέντρα Υλοποίηση AVL δέντρων Εισαγωγή Κόμβων και Περιστροφές σε AVL δέντρα
Διαβάστε περισσότεραΠρογραμματισμός Ι (ΗΥ120)
Προγραμματισμός Ι (ΗΥ120) Διάλεξη 20: Δυαδικό Δέντρο Αναζήτησης Δυαδικό δέντρο Κάθε κόμβος «γονέας» περιέχει δύο δείκτες που δείχνουν σε δύο κόμβους «παιδιά» του ιδίου τύπου. Αν οι δείκτες προς αυτούς
Διαβάστε περισσότεραΗΥ360 Αρχεία και Βάσεις εδοµένων
ΗΥ360 Αρχεία και Βάσεις εδοµένων ιδάσκων:. Πλεξουσάκης Tutorial B-Trees, B+Trees Μπαριτάκης Παύλος 2018-2019 Ιδιότητες B-trees Χρήση για μείωση των προσπελάσεων στον δίσκο Επέκταση των Binary Search Trees
Διαβάστε περισσότεραΔιάλεξη 13: Δέντρα ΙΙΙ Ισοζυγισμένα Δέντρα, AVL Δέντρα. Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 13: Δέντρα ΙΙΙ Ισοζυγισμένα Δέντρα, AVL Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ισοζυγισμένα Δέντρα Υλοποίηση AVL δέντρων Εισαγωγή Κόμβων και Περιστροφές σε AVL δέντρα
Διαβάστε περισσότεραΙσοζυγισµένο έντρο (AVL Tree)
Εργαστήριο 7 Ισοζυγισµένο έντρο (AVL Tree) Εισαγωγή Εκτός από τα δυαδικά δέντρα αναζήτησης (inry serh trees) που εξετάσαµε σε προηγούµενο εργαστήριο, υπάρχουν αρκετά είδη δέντρων αναζήτησης µε ξεχωριστό
Διαβάστε περισσότεραΔιδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 23: Ισοζυγισμένα Δέντρα, AVL Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ισοζυγισμένα Δέντρα - Υλοποίηση AVL-δέντρων - Εισαγωγή Κόμβων και Περιστροφές σε AVL δέντρα Διδάσκων:
Διαβάστε περισσότεραυαδικά δέντρα αναζήτησης
υαδικά δέντρα αναζήτησης οµές εδοµένων 3 ο εξάµηνο Ορισµός δυαδικού δέντρου αναζήτησης Σ ένα δυαδικό δέντρο αναζήτησης, για κάθε κόµβο Χ, Όλα τα κλειδιά(αντικείµενα) στο αριστερό υποδέντρο του Χ έχουν
Διαβάστε περισσότεραΕργαστήριο 5 Αναδρομική διεργασία εισαγωγής καινούριου κόμβου σε ΔΔΑ με αλφαβητική σειρά
EPL231: Δομές Δεδομένων και Αλγόριθμοι Εργαστήριο 5 Αναδρομική διεργασία εισαγωγής καινούριου κόμβου σε ΔΔΑ με αλφαβητική σειρά Αναδρομή Η αναδρομή εμφανίζεται όταν μία διεργασία καλεί τον εαυτό της Υπάρχουν
Διαβάστε περισσότερα9. Κόκκινα-Μαύρα Δέντρα
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 9. Κόκκινα-Μαύρα Δέντρα 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 9/12/2016 Δέντρα,
Διαβάστε περισσότεραΙσορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή
Ισορροπημένα Δένδρα Μπορούμε να επιτύχουμε για κάθε λειτουργία; χρόνο εκτέλεσης Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή μετά από Περιστροφές x αριστερή περιστροφή από το x y α β y
Διαβάστε περισσότεραΔυαδικάΔΕΝΔΡΑΑναζήτησης
ΔυαδικάΔΕΝΔΡΑΑναζήτησης Ρίζα (κόμβος που δεν έχει γονέα) πρόγονοι απόγονοι γονέας παιδιά έντρο είναι µία συλλογή από στοιχεία, που ονοµάζονται κόµβοι και συνδέονται µεταξύ τους µε τη βοήθεια ακµών αδέλφια
Διαβάστε περισσότεραΔοµές Δεδοµένων. 14η Διάλεξη Δέντρα Δυαδικής Αναζήτησης. Ε. Μαρκάκης
Δοµές Δεδοµένων 14η Διάλεξη Δέντρα Δυαδικής Αναζήτησης Ε. Μαρκάκης Περίληψη Δέντρα Δυαδικής Αναζήτησης Υλοποιήσεις εισαγωγής και αναζήτησης Χαρακτηριστικά επιδόσεων ΔΔΑ Εισαγωγή στη ρίζα ΔΔΑ Υλοποιήσεις
Διαβάστε περισσότεραΜπαλτάς Αλέξανδρος 21 Απριλίου 2015
ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ B- Trees Δομές Δεδομένων Μπαλτάς Αλέξανδρος 21 Απριλίου 2015 ampaltas@ceid.upatras.gr Περιεχόμενα 1. Εισαγωγή 2. Ορισμός B- tree 3. Αναζήτηση σε B- tree 4. Ένθεση σε
Διαβάστε περισσότεραΕργαστήριο 8: Αναδρομική διεργασία εισαγωγής καινούριου κόμβου σε ΔΔΑ
Εργαστήριο 8: Αναδρομική διεργασία εισαγωγής καινούριου κόμβου σε ΔΔΑ Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: -Αναδρομική διεργασία εισαγωγής καινούριου κόμβου σε ΔΔΑ με αλφαβητική σειρά
Διαβάστε περισσότεραΑναδρομικοί Αλγόριθμοι
Αναδρομικός αλγόριθμος (recursive algorithm) Επιλύει ένα πρόβλημα λύνοντας ένα ή περισσότερα στιγμιότυπα του ίδιου προβλήματος. Αναδρομικός αλγόριθμος (recursive algorithm) Επιλύει ένα πρόβλημα λύνοντας
Διαβάστε περισσότεραΟντοκεντρικός Προγραμματισμός
Οντοκεντρικός Προγραμματισμός Ενότητα 8: C++ ΒΙΒΛΙΟΗΚΗ STL, ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Δομές Δεδομένων ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής Δομές
Διαβάστε περισσότεραΔομές Αναζήτησης. κλειδί από ολικά διατεταγμένο σύνολο. Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες: Εισαγωγή ενός νέου στοιχείου
Δομές Αναζήτησης Χειριζόμαστε ένα σύνολο στοιχείων κλειδί από ολικά διατεταγμένο σύνολο όπου το κάθε στοιχείο έχει ένα Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες: Εισαγωγή ενός νέου στοιχείου με
Διαβάστε περισσότερα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,
Διαβάστε περισσότεραΑλγόριθμοι Ταξινόμησης Μέρος 3
Αλγόριθμοι Ταξινόμησης Μέρος 3 Μανόλης Κουμπαράκης 1 Ταξινόμηση με Ουρά Προτεραιότητας Θα παρουσιάσουμε τώρα δύο αλγόριθμους ταξινόμησης που χρησιμοποιούν μια ουρά προτεραιότητας για την υλοποίηση τους.
Διαβάστε περισσότεραΔυαδικά Δέντρα Αναζήτησης (Binary Search Trees) Ορισμός : Ένα δυαδικό δέντρο αναζήτησης t είναι ένα δυαδικό δέντρο, το οποίο είτε είναι κενό είτε:
Δυαδικά Δέντρα Αναζήτησης (Binary Search Trees) Ορισμός : Ένα δυαδικό δέντρο αναζήτησης t είναι ένα δυαδικό δέντρο, το οποίο είτε είναι κενό είτε: (i) όλα τα περιεχόμενα στο αριστερό υποδέντρο του t είναι
Διαβάστε περισσότεραΔομές Δεδομένων (Εργ.) Ακ. Έτος Διδάσκων: Ευάγγελος Σπύρου. Εργαστήριο 10 Δυαδικά Δένδρα Αναζήτησης
ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ Δομές Δεδομένων (Εργ.) Ακ. Έτος 2017-18 Διδάσκων: Ευάγγελος Σπύρου Εργαστήριο 10 Δυαδικά Δένδρα Αναζήτησης 1. Στόχος του εργαστηρίου Στόχος του δέκατου εργαστηρίου
Διαβάστε περισσότεραΔομές Δεδομένων. Δημήτρης Μιχαήλ. Υλοποίηση Δυαδικού Σωρού σε γλώσσα Java. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Δομές Δεδομένων Υλοποίηση Δυαδικού Σωρού σε γλώσσα Java Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Σωρός Μεγίστου ως ΑΤΔ Ένας σωρός μεγίστου (max heap) είναι ένας ΑΤΔ που
Διαβάστε περισσότεραοµές εδοµένων 3 ο Εξάµηνο ΕΝΟΤΗΤΑ 4 ΕΝ ΡΑ
ΕΝΟΤΗΤΑ 4 ΕΝ ΡΑ 1 ένδρα εσωτερικός κόµβος u το δένδρο έχει ύψος 4 u έχει ύψος 3 w έχει βάθος 2 κόµβος ένδρο: γράφηµα χωρίς κύκλους o Ρίζα (root) o Κόµβος (node) o Ακµή (edge) o Γονέας (parent) Παιδί (child)
Διαβάστε περισσότεραΔομές δεδομένων. Ενότητα 5η: Υλοποίηση Λεξικών με Ισοζυγισμένα Δένδρα Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Ενότητα 5η: Υλοποίηση Λεξικών με Ισοζυγισμένα Δένδρα Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών ΕΝΟΤΗΤΑ 5 ΥΛΟΠΟΙΗΣΗ ΛΕΞΙΚΩΝ ΜΕ ΙΣΟΖΥΓΙΣΜΕΝΑ ΔΕΝΔΡΑ
Διαβάστε περισσότεραΕΝΟΤΗΤΑ 5 ΥΝΑΜΙΚΑ ΛΕΞΙΚΑ ΙΣΟΖΥΓΙΣΜΕΝΑ ΕΝ ΡΑ
ΕΝΟΤΗΤΑ 5 ΥΝΑΜΙΚΑ ΛΕΞΙΚΑ ΙΣΟΖΥΓΙΣΜΕΝΑ ΕΝ ΡΑ ενδρικές οµές για Υλοποίηση υναµικών Λεξικών υναµικά λεξικά λειτουργίες LookUp( ), Insert( ) και Delete( ) Αναζητούµε δένδρα για την αποτελεσµατική υλοποίηση
Διαβάστε περισσότερα5 ΔΕΝΤΡΑ (Trees) Σχήµα 5.1 : ενδροειδής αναπαράσταση αρχείων στα Windows. έντρα. \ {root directory} Accessories. Program Files.
5 ΔΕΝΤΡΑ (Trees) Oι περισσότερες δοµές δεδοµένων που εξετάσαµε µέχρι τώρα (λίστες, στοίβες, ουρές) ήταν γραµµικές (ή δοµές δεδοµένων µιας διάστασης). Στην παράγραφο αυτή θα ασχοληθούµε µε τις µή-γραµµικές
Διαβάστε περισσότεραΔένδρα. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα:
Δένδρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή σε δενδρικές δομές δεδομένων, ορισμοί, πράξεις και αναπαράσταση στη μνήμη ΔυαδικάΔένδρακαιΔυαδικάΔένδραΑναζήτησης ΕΠΛ 231 Δομές
Διαβάστε περισσότεραΔιδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 21: Εισαγωγή σε Δενδρικές Δομές Δεδομένων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: -Εισαγωγή σε δενδρικές δομές δεδομένων, -Ορισμοί και πράξεις - Αναπαράσταση δενδρικών δομών δεδομένων
Διαβάστε περισσότεραRed-black δέντρα (Κεφ. 5)
Red-black δέντρα (Κεφ. ) Δομές Δεδομένων Παπαγιαννόπουλος Δημήτριος 30 Μαρτίου 07 30 Μαρτίου 07 papagianno@ceid.upatras.gr . Εισαγωγή Περιεχόμενα. Ορισμός red-black δέντρων 3. Αναζήτηση σε red-black δέντρα
Διαβάστε περισσότεραΔοµές Δεδοµένων. 18η Διάλεξη Ισορροπηµένα δέντρα. Ε. Μαρκάκης
Δοµές Δεδοµένων 18η Διάλεξη Ισορροπηµένα δέντρα Ε. Μαρκάκης Περίληψη Επανάληψη των Τυχαιοποιηµένων ΔΔΑ, Στρεβλών ΔΔΑ, Δέντρων 2-3-4 Δέντρα κόκκινου-µαύρου Λίστες Παράλειψης Χαρακτηριστικά επιδόσεων - συµπεράσµατα
Διαβάστε περισσότεραΜη 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 : ο νέος
Διαβάστε περισσότεραΠΛΗ111. Ανοιξη 2005. Μάθηµα 7 ο. έντρο. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης
ΠΛΗ111 οµηµένος Προγραµµατισµός Ανοιξη 2005 Μάθηµα 7 ο έντρο Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης έντρο Ορισµός Υλοποίηση µε Πίνακα Υλοποίηση µε είκτες υαδικό έντρο
Διαβάστε περισσότεραΟιβασικέςπράξειςπουορίζουντονΑΤΔ δυαδικό δέντρο αναζήτησης είναι οι ακόλουθες:
Δυαδικά Δέντρα Αναζήτησης (Binary Search Trees) Ορισμός : Ένα δυαδικό δέντρο αναζήτησης t είναι ένα δυαδικό δέντρο, το οποίο είτε είναι κενό είτε: (i) όλα τα περιεχόμενα στο αριστερό υποδέντρο του t είναι
Διαβάστε περισσότεραΔιάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις
ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 16: Σωροί Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις Ουρά Προτεραιότητας (Priority
Διαβάστε περισσότεραΚεφάλαιο 8 Ισορροπημένα Δένδρα Αναζήτησης
Κεφάλαιο 8 Ισορροπημένα Δένδρα Αναζήτησης Περιεχόμενα 8.1 Κατηγορίες ισορροπημένων δένδρων αναζήτησης... 155 8.1.1 Περιστροφές... 156 8.2 Δένδρα AVL... 157 8.2.1 Αποκατάσταση συνθήκης ισορροπίας... 158
Διαβάστε περισσότεραΚατ οίκον Εργασία 3 Σκελετοί Λύσεων
Άσκηση 1 Χρησιµοποιούµε τη δοµή Κατ οίκον Εργασία 3 Σκελετοί Λύσεων typedef struct Node int data; struct node *lchild; struct node *rbro; node; και υποθέτουµε πως ένα τυχαίο δένδρο είναι υλοποιηµένο ως
Διαβάστε περισσότεραRed- black δέντρα Εκτενείς Δομές Δεδομένων (Κεφ. 5)
ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ Red- black δέντρα Εκτενείς Δομές Δεδομένων (Κεφ. ) Δομές Δεδομένων Μπαλτάς Αλέξανδρος 4 Μαρτίου 0 ampaltas@ceid.upatras.gr Περιεχόμενα. Εισαγωγή. Ορισμός red- black
Διαβάστε περισσότεραΔοµές Δεδοµένων. 17η Διάλεξη Ισορροπηµένα δέντρα. Ε. Μαρκάκης
Δοµές Δεδοµένων 17η Διάλεξη Ισορροπηµένα δέντρα Ε. Μαρκάκης Περίληψη Εισαγωγή Τυχαιοποιηµένα ΔΔΑ (Randomized Binary Search trees) Στρεβλά ΔΔΑ (Splay trees) Καθοδικά δέντρα 2-3-4 (Top-Down 2-3-4 trees)
Διαβάστε περισσότεραυαδικό έντρο Αναζήτησης (BSTree)
Εργαστήριο 6 υαδικό έντρο Αναζήτησης (BSTree) Εισαγωγή Οι περισσότερες δοµές δεδοµένων, που εξετάσαµε µέχρι τώρα (λίστες, στοίβες, ουρές) ήταν γραµ- µικές (ή δοµές δεδοµένων µιας διάστασης). Στην παράγραφο
Διαβάστε περισσότεραΔημιουργία Δυαδικών Δέντρων Αναζήτησης
Δημιουργία Δυαδικών Δέντρων Αναζήτησης Τα Δυαδικά δέντρα αναζήτησης είναι διατεταγμένα δυαδικά δέντρα όπου έχει σημασία η διάταξη των παιδιών κάθε κόμβου. Συγκεκριμένα για τα Δυαδικά δέντρα αναζήτησης,
Διαβάστε περισσότεραΕνότητα 7 Ουρές Προτεραιότητας
Ενότητα Ουρές Προτεραιότητας ΗΥ4 - Παναγιώτα Φατούρου Ουρές Προτεραιότητας Θεωρούµε ένα χώρο κλειδιών U και έστω ότι µε κάθε κλειδί Κ (τύπου Key) έχει συσχετισθεί κάποια πληροφορία Ι (τύπου Type). Έστω
Διαβάστε περισσότεραΕνότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find)
Ενότητα 9 (Union-Find) ΗΥ240 - Παναγιώτα Φατούρου 1 Έστω ότι S 1,, S k είναι ξένα υποσύνολα ενός συνόλου U, δηλαδή ισχύει ότι S i S j =, για κάθε i,j µε i j και S 1 S k = U. Λειτουργίες q MakeSet(X): επιστρέφει
Διαβάστε περισσότεραΠελάτες φθάνουν στο ταμείο μιας τράπεζας Eνα μόνο ταμείο είναι ανοικτό Κάθε πελάτης παρουσιάζεται με ένα νούμερο - αριθμός προτεραιότητας Όσο ο
Ουρές προτεραιότητας Πελάτες φθάνουν στο ταμείο μιας τράπεζας Eνα μόνο ταμείο είναι ανοικτό Κάθε πελάτης παρουσιάζεται με ένα νούμερο - αριθμός προτεραιότητας Όσο ο αριθμός είναι μεγάλος, τόσο οι πελάτες
Διαβάστε περισσότεραΔιάλεξη 18: B-Δένδρα
Διάλεξη 18: B-Δένδρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή & Ισοζυγισμένα Δένδρα 2-3 Δένδρα, Περιγραφή Πράξεων της Εισαγωγής και άλλες πράξεις Β-δένδρα Διδάσκων: Κωνσταντίνος
Διαβάστε περισσότεραΔιάλεξη 14: Δέντρα IV - B-Δένδρα
ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 14: Δέντρα IV - B-Δένδρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - 2-3 Δένδρα, Εισαγωγή και άλλες πράξεις - Άλλα Δέντρα: Β-δένδρα, Β+-δέντρα,
Διαβάστε περισσότεραΔομές Αναζήτησης. κλειδί από ολικά διατεταγμένο σύνολο. Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες: Εισαγωγή ενός νέου στοιχείου
Δομές Αναζήτησης Χειριζόμαστε ένα σύνολο στοιχείων κλειδί από ολικά διατεταγμένο σύνολο όπου το κάθε στοιχείο έχει ένα Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες: Εισαγωγή ενός νέου στοιχείου με
Διαβάστε περισσότεραΕργαστήριο 2 Δυναμικές Δομές Δεδομένων Διδάσκοντες: Δρ. Γεώργιος Δημητρίου Δρ. Άχμεντ Μάχντι
Μεταγλωττιστές Εργαστήριο 2 Δυναμικές Δομές Δεδομένων Διδάσκοντες: Δρ. Γεώργιος Δημητρίου Δρ. Άχμεντ Μάχντι 2015-1016 Δομές Δεδομένων Μια δομή δεδομένων είναι μια συλλογή δεδομένων με κάποιες ιδιότητες
Διαβάστε περισσότεραΚατ οίκον Εργασία 3 Σκελετοί Λύσεων
Κατ οίκον Εργασία 3 Σκελετοί Λύσεων Άσκηση 1 (α) Έστω Α(n) και Κ(n) ο αριθμός των ακμών και ο αριθμός των κόμβων ενός αυστηρά δυαδικού δένδρου με n φύλλα. Θέλουμε να αποδείξουμε για κάθε n 1 την πρόταση
Διαβάστε περισσότεραΔοµές Δεδοµένων. 11η Διάλεξη Ταξινόµηση Quicksort και Ιδιότητες Δέντρων. Ε. Μαρκάκης
Δοµές Δεδοµένων 11η Διάλεξη Ταξινόµηση Quicksort και Ιδιότητες Δέντρων Ε. Μαρκάκης Περίληψη Quicksort Χαρακτηριστικά επιδόσεων Μη αναδροµική υλοποίηση Δέντρα Μαθηµατικές ιδιότητες Δοµές Δεδοµένων 11-2
Διαβάστε περισσότεραΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων
ΟΝΟΜΑΤΕΠΩΝΥΜΟ: ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ AM: Δοµές Δεδοµένων Εξεταστική Ιανουαρίου 2014 Διδάσκων : Ευάγγελος Μαρκάκης 20.01.2014 ΥΠΟΓΡΑΦΗ ΕΠΟΠΤΗ: Διάρκεια εξέτασης : 2 ώρες και
Διαβάστε περισσότερα«Μελέτη δομών τυχαίων δένδρων αναζήτησης»
ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Διπλωματική εργασία «Μελέτη δομών τυχαίων δένδρων αναζήτησης» Όνομα: ΔΗΜΗΤΡΑ ΚΑΤΑΝΟΥ Επιβλέπων καθηγητής: Παναγιώτης Μποζάνης Βόλος,
Διαβάστε περισσότεραΟι βασικές πράξεις που ορίζουν τον ΑΤ δυαδικό δέντρο αναζήτησης είναι οι ακόλουθες:
υαδικά έντρα Αναζήτησης (Binary Search Trees) Ορισµός : Ένα δυαδικό δέντρο αναζήτησης t είναι ένα δυαδικό δέντρο, το οποίο είτε είναι κενό είτε: (i) όλα τα περιεχόµενα στο αριστερό υποδέντρο του t είναι
Διαβάστε περισσότεραΔομές Δεδομένων και Αλγόριθμοι (Γ εξάμηνο) Τμήμα Μηχανικών Πληροφορικής ΤΕ, ΤΕΙ Ηπείρου. Άσκηση εργαστηρίου #6 (Υλοποίηση δυαδικού δένδρου αναζήτησης)
Δομές Δεδομένων και Αλγόριθμοι (Γ εξάμηνο) Τμήμα Μηχανικών Πληροφορικής ΤΕ, ΤΕΙ Ηπείρου Γκόγκος Χρήστος 04/12/2014 Άσκηση εργαστηρίου #6 (Υλοποίηση δυαδικού δένδρου αναζήτησης) Στην εργασία αυτή παρουσιάζεται
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Μέθοδοι Παράδειγμα 1 Θέλουμε ένα πρόγραμμα που να προσομοιώνει την κίνηση ενός αυτοκινήτου, το οποίο κινείται και τυπώνει τη θέση του.
Διαβάστε περισσότεραΔομές Δεδομένων. Ενότητα 10: Πλήρη Δυαδικά Δέντρα, Μέγιστα/Ελάχιστα Δέντρα & Εισαγωγή στο Σωρό- Ο ΑΤΔ Μέγιστος Σωρός. Καθηγήτρια Μαρία Σατρατζέμη
Ενότητα 10: Πλήρη Δυαδικά Δέντρα, Μέγιστα/Ελάχιστα Δέντρα & Εισαγωγή στο Σωρό- Ο ΑΤΔ Μέγιστος Σωρός Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative
Διαβάστε περισσότεραΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές δεδομένων. Ενότητα 7η: Ουρές Προτεραιότητας Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Ενότητα 7η: Ουρές Προτεραιότητας Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών Ενότητα 7 Ουρές Προτεραιότητας ΗΥ240 - Παναγιώτα Φατούρου 2 Ουρές
Διαβάστε περισσότεραΕνότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find)
Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη (Union-Find) ΗΥ240 - Παναγιώτα Φατούρου 1 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης Έστω ότι S 1,, S k είναι ξένα υποσύνολα ενός συνόλου U, δηλαδή
Διαβάστε περισσότεραΕνότητα 7 Ουρές Προτεραιότητας
Ενότητα 7 Ουρές Προτεραιότητας ΗΥ240 - Παναγιώτα Φατούρου Ουρές Προτεραιότητας Θεωρούµε ένα χώρο κλειδιών U και έστω ότι µε κάθε κλειδί Κ (τύπου Key) έχει συσχετισθεί κάποια πληροφορία Ι (τύπου Type).
Διαβάστε περισσότεραΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ
ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ (Οι ερωτήσεις µε κίτρινη υπογράµµιση είναι εκτός ύλης για φέτος) ΕΙΣΑΓΩΓΗ Q1. Οι Πρωταρχικοί τύποι (primitive types) στη Java 1. Είναι όλοι οι ακέραιοι και όλοι οι πραγµατικοί
Διαβάστε περισσότεραΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΑΛΑΜΑΤΑΣ ΠΑΡΑΡΤΗΜΑ ΣΠΑΡΤΗΣ ΤΜΗΜΑ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ
ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΑΛΑΜΑΤΑΣ ΠΑΡΑΡΤΗΜΑ ΣΠΑΡΤΗΣ ΤΜΗΜΑ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ «Τα δυαδικά δένδρα αναζήτησης και οι εφαρμογές τους» ΔΕΛΗ ΜΑΡΙΑ 2005011
Διαβάστε περισσότεραένδρα (tail, head) Γονέας Παιδί (ancestor, descendant) Φύλλο Εσωτερικός Κόµβος (leaf, non-leaf) που αποτελεί το γονέα του v.
ΕΝΟΤΗΤΑ 4 ΕΝ ΡΑ ΗΥ240 - Παναγιώτα Φατούρου 1 ένδρα Κόµβοι (nodes) Ακµές (edges) Ουρά και κεφαλή ακµής (tail, head) Γονέας Παιδί Αδελφικός κόµβος (parent, child, sibling) Μονοπάτι (path) Πρόγονος απόγονος
Διαβάστε περισσότεραPhysical DB Design. B-Trees Index files can become quite large for large main files Indices on index files are possible.
B-Trees Index files can become quite large for large main files Indices on index files are possible 3 rd -level index 2 nd -level index 1 st -level index Main file 1 The 1 st -level index consists of pairs
Διαβάστε περισσότεραΚατηγορίες Συμπίεσης. Συμπίεση με απώλειες δεδομένων (lossy compression) π.χ. συμπίεση εικόνας και ήχου
Συμπίεση Η συμπίεση δεδομένων ελαττώνει το μέγεθος ενός αρχείου : Εξοικονόμηση αποθηκευτικού χώρου Εξοικονόμηση χρόνου μετάδοσης Τα περισσότερα αρχεία έχουν πλεονασμό στα δεδομένα τους Είναι σημαντική
Διαβάστε περισσότεραΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου,
AVL- ένδρα Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Υλοποίηση ΑVL-δένδρων Εισαγωγή κόµβων και περιστροφές ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου, 2006 7-1 AVL ένδρα Είναι δυνατό
Διαβάστε περισσότεραΔιδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ
Διάλεξη 10: Λίστες Υλοποίηση & Εφαρμογές Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ευθύγραμμες Απλά Συνδεδεμένες Λίστες (εύρεση, εισαγωγή, διαγραφή) Σύγκριση Συνδεδεμένων Λιστών με Πίνακες
Διαβάστε περισσότεραΚεφάλαιο 6 Ουρές Προτεραιότητας
Κεφάλαιο 6 Ουρές Προτεραιότητας Περιεχόμενα 6.1 Ο αφηρημένος τύπος δεδομένων ουράς προτεραιότητας... 114 6.2 Ουρές προτεραιότητας με στοιχειώδεις δομές δεδομένων... 115 6.3 Δυαδικός σωρός... 116 6.3.1
Διαβάστε περισσότεραΟυρά Προτεραιότητας (priority queue)
Ουρά Προτεραιότητας (priority queue) Δομή δεδομένων που υποστηρίζει δύο βασικές λειτουργίες : Εισαγωγή στοιχείου με δεδομένο κλειδί. Επιστροφή ενός στοιχείου με μέγιστο (ή ελάχιστο) κλειδί και διαγραφή
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Μέθοδοι Παράδειγμα Θέλουμε ένα πρόγραμμα που να προσομοιώνει την κίνηση ενός αυτοκινήτου, το οποίο κινείται και τυπώνει τη θέση του.
Διαβάστε περισσότεραΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Πίνακες Συµβόλων Κεφάλαιο 12 ( ) Ε. Μαρκάκης Επίκουρος Καθηγητής
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Πίνακες Συµβόλων Κεφάλαιο 12 (12.1-12.4) Ε. Μαρκάκης Επίκουρος Καθηγητής Περίληψη Πίνακες συµβόλων Διεπαφή πίνακα συµβόλων Αναζήτηση µε αριθµοδείκτη Ακολουθιακή αναζήτηση Δυαδική αναζήτηση
Διαβάστε περισσότεραένδρα u o Κόµβοι (nodes) o Ακµές (edges) o Ουρά και κεφαλή ακµής (tail, head) o Γονέας Παιδί Αδελφικός κόµβος (parent, child, sibling) o Μονοπάτι (pat
ΕΝΟΤΗΤΑ 4 ΕΝ ΡΑ ένδρα u o Κόµβοι (nodes) o Ακµές (edges) o Ουρά και κεφαλή ακµής (tail, head) o Γονέας Παιδί Αδελφικός κόµβος (parent, child, sibling) o Μονοπάτι (path) o Πρόγονος απόγονος (ancestor, descendant)
Διαβάστε περισσότεραΔομές Δεδομένων & Αλγόριθμοι
- Πίνακες 1 Πίνακες Οι πίνακες έχουν σταθερό μέγεθος και τύπο δεδομένων. Βασικά πλεονεκτήματά τους είναι η απλότητα προγραμματισμού τους και η ταχύτητα. Ωστόσο δεν παρέχουν την ευελιξία η οποία απαιτείται
Διαβάστε περισσότεραΔιάλεξη 11: Δέντρα Ι - Εισαγωγή σε Δενδρικές Δομές Δεδομένων
ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 11: Δέντρα Ι - Εισαγωγή σε Δενδρικές Δομές Δεδομένων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Εισαγωγή σε δενδρικές δομές δεδομένων, -
Διαβάστε περισσότεραΔιάλεξη 11: Δέντρα Ι Εισαγωγή σε Δενδρικές Δομές Δεδομένων
Διάλεξη 11: Δέντρα Ι Εισαγωγή σε Δενδρικές Δομές Δεδομένων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή σε δενδρικές δομές δεδομένων, Ορισμοί και πράξεις Αναπαράσταση δενδρικών δομών
Διαβάστε περισσότεραΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων
ΟΝΟΜΑΤΕΠΩΝΥΜΟ: ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ AM: Δοµές Δεδοµένων Πτυχιακή Εξεταστική Ιούλιος 2014 Διδάσκων : Ευάγγελος Μαρκάκης 09.07.2014 ΥΠΟΓΡΑΦΗ ΕΠΟΠΤΗ: Διάρκεια εξέτασης : 2 ώρες
Διαβάστε περισσότερα