ΗΥ240: Δομές Δεδομένων Χειμερινό Εξάμηνο Ακαδημαϊκό Έτος Παναγιώτα Φατούρου. Προγραμματιστική Εργασία 2 ο και 3 ο Μέρος

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

Download "ΗΥ240: Δομές Δεδομένων Χειμερινό Εξάμηνο Ακαδημαϊκό Έτος 2009-10 Παναγιώτα Φατούρου. Προγραμματιστική Εργασία 2 ο και 3 ο Μέρος"

Transcript

1 ΗΥ240: Δομές Δεδομένων Χειμερινό Εξάμηνο Ακαδημαϊκό Έτος 09- Παναγιώτα Φατούρου Προγραμματιστική Εργασία 2 ο και ο Μέρος Ημερομηνία Παράδοσης: Παρασκευή, 18 Δεκεμβρίου 09, ώρα 08:00 (το πρωί) Τρόπος Παράδοσης: Χρησιμοποιώντας το πρόγραμμα submit. Στο μέρος αυτό της προγραμματιστικής εργασίας ζητείται να γίνουν τροποποιήσεις στο πρόγραμμα που προέκυψε κατά την υλοποίηση του 1 ου μέρους. Το πρόγραμμα που θα προκύψει θα περιγράφει (προσομοιώνει) και πάλι τη λειτουργία ενός συστήματος δημοσιοποίησης/συνδρομής (το οποίο ακολουθεί τους κανόνες λειτουργίας που έχουν περιγραφεί στο 1 ο μέρος). Αντικατάσταση της λίστας πληροφοριών κάθε ομάδας με ένα ταξινομημένο, διπλά συνδεδεμένο, δυαδικό δένδρο (binary search tree) Οι πληροφορίες που συσχετίζονται με κάθε ομάδα κάθε χρονική στιγμή στο σύστημα θα πρέπει τώρα να αποθηκεύονται σε ένα ταξινομημένο δυαδικό δένδρο. Επομένως, η ταξινομημένη διπλά συνδεδεμένη λίστα πληροφοριών κάθε ομάδας θα πρέπει να αντικατασταθεί με ένα ταξινομημένο, διπλά-συνδεδεμένο δυαδικό δένδρο (dubly-linked binary search tree). Το δένδρο αυτό (Σχήμα 1) ονομάζεται δένδρο πληροφοριών (InfTree). Inf Inf Inf Inf Inf Inf Σχήμα 1 Όπως ίσχυε για τη λίστα πληροφοριών του 1 ου μέρους, το δένδρο πληροφοριών κάθε ομάδας περιέχει εγγραφές που περιγράφουν τις πληροφορίες που συσχετίζονται με την ομάδα. Κάθε τέτοια πληροφορία αποθηκεύεται ως μια εγγραφή (struct Inf) που αποτελείται από τα παρακάτω πεδία. Inf Έναν ακέραιο iid που αποτελεί το αναγνωριστικό της πληροφορίας. Έναν ακέραιο itm που αποθηκεύει τη «χρονική στιγμή» στην οποία η πληροφορία αυτή καταφθάνει στο σύστημα (δηλαδή τη χρονοσφραγίδα άφιξης της πληροφορίας). H χρονοσφραγίδα άφιξης παρέχεται από το χρήστη όπως στο μέρος 1 της προγραμματιστικής εργασίας. Έναν πίνακα των MG (Maximum_Grups) θέσεων που περιγράφει τα grups πληροφοριών στα οποία ανήκει η πληροφορία. Εάν ισχύει igp[i] == 1, 0 i MG-1, τότε η πληροφορία έχει

2 συσχετισθεί (ή ανήκει) στην ομάδα πληροφοριών i. Αντίθετα, αν igp[i] == 0, η πληροφορία δεν συσχετίζεται με την ομάδα i. Έναν δείκτη ilc προς τον αριστερό θυγατρικό κόμβο του κόμβου που αποθηκεύει την πληροφορία στο δένδρο. Έναν δείκτη irc προς το δεξιό θυγατρικό κόμβο του κόμβου που αποθηκεύει την πληροφορία στο δένδρο. Έναν δείκτη προς τον πατρικό κόμβο του κόμβου που αποθηκεύει την πληροφορία στο δένδρο. Η εγγραφή τύπου Inf παρουσιάζεται στο Σχήμα 2. Το δένδρο πληροφοριών κάθε ομάδας είναι ταξινομημένο ως προς το αναγνωριστικό των εγγραφών που περιέχει. iid itm igp[0]... igp[mg-1] struct Inf ilc irc Σχήμα 2 H λίστα συνδρομών κάθε ομάδας εξακολουθεί να υπάρχει και να διέπεται από τους ίδιους κανόνες λειτουργίας όπως στο πρώτο μέρος της προγραμματιστικής εργασίας. Η μορφή των δομών δεδομένων που περιγράφηκαν παραπάνω παρουσιάζεται στο Σχήμα. G[0] G[1] G[MG-1] gid grt gsub gid grt gsub gid grt gsub snext snext snext snext snext snext Σχήμα 2

3 Υλοποίηση Πίνακα Κατακερματισμού και φυλλοπροσανατολισμένων δυαδικών δένδρων (Hash tables - leaf-riented binary search trees) Η λίστα συνδρομητών αντικαθίσταται από έναν πίνακα κατακερματισμού, όπως φαίνεται στο Σχήμα 4. Το πλήθος θέσεων του πίνακα κατακερματισμού θα καθορίζεται από το χρήστη στη γραμμή εντολών. Ζητείται να υλοποιήσετε την τεχνική κατακερματισμού των ταξινομημένων ξεχωριστών αλυσίδων. Κάθε αλυσίδα διατηρείται ταξινομημένη ως προς τα αναγνωριστικά των συνδρομητών. Η συνάρτηση κατακερματισμού που θα χρησιμοποιήσετε θα πρέπει να επιλέγεται τυχαία από μια καθολική οικογένεια συναρτήσεων κατακερματισμού (δηλαδή ζητείται να υλοποιήσετε μια καθολική οικογένεια συναρτήσεων κατακερματισμού, βάσει της θεωρίας που διδάσκεται στο μάθημα). Θεωρήστε ότι τα αναγνωριστικά των συνδρομητών θα επιλεχθούν από το σύνολο {0,..,<p>-1}, όπου <p> είναι ένας πρώτος αριθμός που παρέχεται από το χρήστη στη γραμμή εντολών. Η μορφή της δομής δεδομένων που περιγράφει τους συνδρομητές παρουσιάζεται στο Σχήμα 4. 0 SubInf 0 1 SubInf 0 2 SubInf 0 k0 1 SubInf 1 1 SubInf 1 k1 m-1 SubInf m-1 1 SubInf m-1 km-1 Σχήμα 4 Σε αυτό το μέρος της εργασίας, κάθε εγγραφή SubInf περιέχει τα παρακάτω πεδία: έναν ακέραιο που αποτελεί το αναγνωριστικό του συνδρομητή. Έναν ακέραιο stm που αποτελεί τη χρονοσφραγίδα άφιξης του συνδρομητή στο σύστημα. Η πληροφορία αυτή παρέχεται από το χρήστη όπως και στο μέρος 1 της προγραμματιστικής εργασίας. Έναν πίνακα tgp[mg] ο οποίος περιέχει MG δείκτες έναν για κάθε ομάδα. Είναι αξιοσημείωτο πως ο πίνακας αυτός αποτελεί επιπρόσθετο πεδίο του struct SubInf συγκριτικά με τη μορφή του struct SubInf του 1 ο μέρους της εργασίας. Έστω οποιαδήποτε ομάδα k, 0 k MG-1. Αν ο δείκτης tgp[k] μιας εγγραφής του πίνακα κατακερματισμού συνδρομητών έχει την τιμή 1, ο συνδρομητής δεν είναι εγγεγραμμένος στην ομάδα με αναγνωριστικό k. Διαφορετικά, ο δείκτης tgp[k] δείχνει στη ρίζα ενός δένδρου που αποθηκεύει πληροφορίες δημοσιευμένες στην ομάδα G[k]. Το δένδρο αυτό ονομάζεται δένδρο κατανάλωσης. Με κάθε συνδρομητή συσχετίζονται τόσα δένδρα κατανάλωσης όσες και οι ομάδες για τις οποίες ενδιαφέρεται ο συνδρομητής. Τους κόμβους ρίζες αυτών των δένδρων δεικτοδοτούν κατάλληλοι δείκτες του πίνακα tgp. Περιοδικά, ο εξυπηρέτης (server) αποστέλλει κάποιες από τις πληροφορίες που περιέχονται στις ομάδες στους συνδρομητές κάθε ομάδας. Αυτό γίνεται μέσω ενός νέου γεγονότος που ονομάζεται Prune. Συγκεκριμένα, όταν εκτελείται το γεγονός αυτό συμβαίνουν τα εξής. Για κάθε ομάδα G[k], 0 k MG-1, διαγράφονται από το δένδρο πληροφοριών της ομάδας όλες οι πληροφορίες που έχουν

4 χρονοσφραγίδα μικρότερη από ή ίση με μια δοθείσα χρονοσφραγίδα που συσχετίζεται με το συγκεκριμένο γεγονός τύπου Prune και παρέχεται στο αρχείο εισόδου. Για κάθε συνδρομητή S που είναι εγγεγραμμένος στην ομάδα k, όλες αυτές οι πληροφορίες (μία προς μία) εισάγονται στο δένδρο κατανάλωσης του S που αντιστοιχεί στην ομάδα k. Το δένδρο κατανάλωσης είναι ένα ταξινομημένο, δυαδικό, διπλά-συνδεδεμένο, φυλλοπροσανατολισμένο δένδρο του οποίου τα φύλλα συνενώνονται προκειμένου να σχηματίσουν μια ταξινομημένη απλά συνδεδεμένη λίστα. Ακριβέστερος ορισμός των φυλλοπροσανατολισμένων δένδρων παρουσιάζεται στη συνέχεια. Αναλυτική περιγραφή του γεγονότος Prune περιγράφεται επίσης σε επόμενη παράγραφο. Έναν πίνακα sgp[mg] ο οποίος περιέχει MG δείκτες, έναν για κάθε ομάδα. Έστω οποιαδήποτε ομάδα k, 0 k MG-1. Όπως στο 1 ο μέρος της προγραμματιστικής εργασίας, αν ο συνδρομητής δεν είναι εγγεγραμμένος στην ομάδα με αναγνωριστικό k, ο δείκτης sgp[k] του συνδρομητή έχει την τιμή 1. Διαφορετικά, ο δείκτης sgp[k] δείχνει σε ένα από τα στοιχεία της λίστας των φύλλων του δένδρου κατανάλωσης tgp[k] του συνδρομητή. Περιοδικά, κάθε συνδρομητής μπορεί να καταναλώνει τις πληροφορίες που περιέχονται στα δένδρα κατανάλωσης της εγγραφής του. Συγκεκριμένα, για κάθε τέτοιο δένδρο tgp[k] καταναλώνει όλες τις πληροφορίες που δημοσιεύθηκαν μετά από την τελευταία εκτέλεση από το συνδρομητή της λειτουργίας κατανάλωσης για το δένδρο αυτό. Αυτό γίνεται με την ανάγνωση των στοιχείων της λίστας των φύλλων του δένδρου ξεκινώντας από την εγγραφή sgp[k] (δηλαδή από την τελευταία εγγραφή που ο συνδρομητής έχει καταναλώσει σε αυτό το δένδρο κατανάλωσης) μέχρι την πιο πρόσφατη εγγραφή που τοποθετήθηκε στο δένδρο κατανάλωσης tgp[k]. Στο τέλος της διαδικασίας κατανάλωσης, ο δείκτης sgp[k] ενημερώνεται ώστε να δείχνει στο δεξιότερο φύλλο του δένδρου κατανάλωσης tgp[k]. Είναι σημαντικό πως ο δείκτης sgp[k] θα έχει την τιμή NULL εάν δεν έχει προηγηθεί γεγονός τύπου Prune ή αν το «κλάδεμα» (pruning) του δένδρου πληροφοριών της ομάδας G[k] που πραγματοποιήθηκε από τα γεγονότα τύπου Prune που προηγούνται της διαδικασίας κατανάλωσης δεν οδήγησαν στην εισαγωγή εγγραφών πληροφοριών στο δένδρο κατανάλωσης. Έναν δείκτη next στο επόμενο στοιχείο της αλυσίδας στην οποία ανήκει η εγγραφή που αφορά τον συνδρομητή στον πίνακα κατακερματισμού των συνδρομητών. Κάθε ένα από τα δένδρα κατανάλωσης ενός συνδρομητή είναι ένα ταξινομημένο, διπλά συνδεδεμένο, φυλλοπροσανατολισμένο δυαδικό δένδρο του οποίου τα φύλλα έχουν διασυνδεθεί ώστε να σχηματίσουν μια απλά συνδεδεμένη (ταξινομημένη) λίστα. Ένα δυαδικό δένδρο ονομάζεται φυλλοπροσανατολισμένο όταν όλα τα κλειδιά που εισάγονται στο δένδρο βρίσκονται πάντα αποθηκευμένα στα φύλλα, από αριστερά προς τα δεξιά κατά μη φθίνουσα τιμή κλειδιού, ενώ στους εσωτερικούς κόμβους αποθηκεύονται κατάλληλα κλειδιά που καθιστούν εφικτή την ορθή διεκπεραίωση λειτουργιών LkUp() στο δένδρο. Ένα φυλλοπροσανατολισμένο δένδρο είναι ταξινομημένο όταν κάθε χρονική στιγμή ισχύει η εξής ιδιότητα: «Το κλειδί κάθε κόμβου u είναι μεγαλύτερο από ή ίσο με καθένα από τα κλειδιά των κόμβων του αριστερού υποδένδρου του u και μεγαλύτερο από καθένα από τα κλειδιά των κόμβων που βρίσκονται στο δεξιό υποδένδρο του u.» Η κύρια διαφορά των ταξινομημένων φυλλοπροσανατολισμένων δένδρων από τα ταξινομημένα δυαδικά δένδρα είναι πως κάθε κλειδί που εισάγεται στο δένδρο βρίσκεται σε κάποιο φύλλο και έτσι αναζητήσεις κλειδιών είναι επιτυχημένες μόνο αν βρίσκουν το ζητούμενο κλειδί σε έναν από τους κόμβους φύλλα του δένδρου. Πιο συγκεκριμένα, για την εισαγωγή min{k,k } ενός νέου κλειδιού k, ακολουθείται ο κλασικός αλγόριθμος αναζήτησης του k σε ένα ταξινομημένο δυαδικό (όχι απαραίτητα φυλλοπροσανατολισμένο) δένδρο μέχρι να min{k,k } max{k,k } Σχήμα 4

5 προσεγγιστεί κάποιος κόμβος φύλλο (εύρεση του προς αναζήτηση κλειδιού σε εσωτερικό κόμβο δεν αρκεί αφού τα κλειδιά που έχουν εισαχθεί στο δένδρο πρέπει να βρίσκονται όλα στα φύλλα). Ο τελευταίος κόμβος στο μονοπάτι αναζήτησης είναι κάποιο φύλλο. Έστω k το κλειδί του φύλλου αυτού. Τότε, η εισαγωγή γίνεται αντικαθιστώντας το φύλλο με κλειδί k με την τριάδα κόμβων που φαίνεται στο Σχήμα. Είναι αξιοσημείωτο ότι, βάσει ορισμού, σε ένα φυλλοπροσανατολισμένο δένδρο, οι εσωτερικοί κόμβοι έχουν και τους δύο θυγατρικούς δείκτες μη κενούς, ενώ οι αντίστοιχοι δείκτες των φύλλων είναι κενοί (άρα κάθε φυλλοπροσανατολισμένο δένδρο είναι γεμάτο). Στην εργασία αυτή το φυλλοπροσανατολισμένο δένδρο που ζητείται να υλοποιήσετε έχει την επιπρόσθετη ιδιότητα πως όλα τα φύλλα του είναι συνδεδεμένα μεταξύ τους σχηματίζοντας μια ταξινομημένη (ως προς τη χρονοσφραγίδα κάθε εγγραφής) απλά συνδεδεμένη λίστα. Το πρώτο στοιχείο αυτής της λίστας είναι το αριστερότερο φύλλο του φυλλοπροσανατολισμένου δένδρου, ενώ το τελευταίο στοιχείο της λίστας είναι το δεξιότερο φύλλο του δένδρου. Η ιδιότητα αυτή θα πρέπει να διατηρείται κατά την εισαγωγή νέων κλειδιών στο δένδρο. Ένα παράδειγμα φυλλοπροσανατολισμένου δένδρου που έχει την ιδιότητα σύνδεσης των φύλλων του σε λίστα παρουσιάζεται στο Σχήμα 6 (όπου οι δείκτες που αποτελούν τη λίστα των φύλλων παρουσιάζονται με έντονο χρώμα). Στην εργασία αυτή κάθε αναφορά σε φυλλοπροσανατολισμένα δένδρα αναφέρεται σε φυλλοπροσανατολισμένα δένδρα των οποίων τα φύλλα έχουν διασυνδεθεί ώστε να σχηματίζουν λίστα (όπως φαίνεται στο Σχήμα 6). Σε ένα διπλά συνδεδεμένο τέτοιο δένδρο, κάθε κόμβος έχει ένα δείκτη που δείχνει στον πατρικό του κόμβο. Στο τέλος της παρούσας εργασίας, συγκεκριμένα στο Σχήμα 9, εξηγείται ο τρόπος με τον οποίο μπορεί να παραχθεί το δένδρο του Σχήματος 6, δηλαδή παρουσιάζονται διαδοχικά οι εισαγωγές των κόμβων του. Σχήμα 6 Κάθε ένα από τα φυλλοπροσανατολισμένα δένδρα ενός συνδρομητή είναι ταξινομημένο ως προς τη χρονοσφραγίδα των εγγραφών που αποθηκεύονται σε αυτό. Κάθε τέτοια εγγραφή, είναι τύπου TreeInf και έχει τα εξής πεδία: Έναν ακέραιο tid που αποτελεί το αναγνωριστικό της πληροφορίας. Έναν ακέραιο ttm που αποθηκεύει τη χρονοσφραγίδα άφιξης της πληροφορίας. Έναν δείκτη tlc προς τον αριστερό θυγατρικό κόμβο στο δένδρο. Έναν δείκτη trc προς το δεξιό θυγατρικό κόμβο στο δένδρο. Έναν δείκτη tp προς τον πατρικό κόμβο στο δένδρο. 0

6 Έναν δείκτη tnext που χρησιμοποιείται αν ο κόμβος είναι φύλλο και δείχνει στο αμέσως επόμενο (προς τα δεξιά) φύλλο στο δένδρο. Έτσι, όλα τα φύλλα του δένδρου συνενώνονται σε μια λίστα με το αριστερότερο φύλλο να είναι το πρώτο στοιχείο της λίστας και το δεξιότερο φύλλο να είναι το τελευταίο στοιχείο της λίστας. Όλοι οι εσωτερικοί κόμβοι του δένδρου κατανάλωσης έχουν το πεδίο next της εγγραφής τους ίσο με NULL. Η εγγραφή τύπου TreeInf παρουσιάζεται στο Σχήμα 7. Tp tid ttm Tnext tlc trc struct TreeInf Σχήμα 7 Περιγραφή Γεγονότων Αρχείου Εισόδου Το πρόγραμμα θα πρέπει να εκτελείται καλώντας την εντολή run <m> <p> <input-file> όπου run είναι το όνομα του εκτελέσιμου αρχείου του προγράμματος, <m> είναι ένας πρώτος αριθμός που καθορίζει το μέγεθος του πίνακα κατακερματισμού των συνδρομητών, <p> είναι ένας πρώτος αριθμός που θα χρησιμοποιήσετε για την σχεδίαση της καθολικής κλάσης των συναρτήσεων κατακερματισμού και <input-file> είναι το όνομα ενός αρχείου εισόδου που περιέχει γεγονότα των μορφών που περιγράφηκαν στο 1 ο μέρος της εργασίας. Το αρχείου εισόδου περιέχει γεγονότα των ακόλουθων μορφών: Ι <itm> <iid> <gid 1 > <gid 2 > <gid k > -1: Γεγονός τύπου Insert_Inf το οποίο έχει την ίδια μορφή με εκείνη του 1 ου μέρους της προγραμματιστικής εργασίας. Τα δένδρα πληροφοριών των ομάδων με τις οποίες συσχετίζεται η πληροφορία <iid> πρέπει να ενημερωθούν (δηλαδή θα πρέπει να προστεθεί σε κάθε ένα από αυτά μια εγγραφή που να περιγράφει την πληροφορία <iid>). H εγγραφή αυτή θα πρέπει να εισαχθεί στην κατάλληλη θέση σε κάθε ένα από αυτά τα δένδρα ώστε αυτά να παραμείνουν ταξινομημένα ως προς τα αναγνωριστικά των πληροφοριών που αποθηκεύονται σε αυτά. Μετά το πέρας της εκτέλεσης ενός τέτοιου γεγονότος, το πρόγραμμα θα πρέπει να τυπώνει την ίδια πληροφορία (και στην ίδια μορφή) όπως και στο 1 ο μέρος της προγραμματιστικής εργασίας. S <sτμ> <> <gid1> <gid2> <gidm> -1: Γεγονός τύπου Subscriber_Registratin το οποίο σηματοδοτεί την εγγραφή ενός νέου συνδρομητή με αναγνωριστικό <> στο σύστημα την χρονική στιγμή <sτμ>, όπως και στο 1 ο μέρος της εργασίας. Ο νέος συνδρομητής πρέπει να προστεθεί στον πίνακα κατακερματισμού συνδρομητών. Επίσης πρέπει να προστεθεί μια εγγραφή στη λίστα συνδρομών κάθε ομάδας για την οποία ενδιαφέρεται ο νέος συνδρομητής. Μετά το πέρας της εκτέλεσης ενός τέτοιου γεγονότος το πρόγραμμα θα πρέπει να τυπώνει αντίστοιχη πληροφορία με εκείνη που τυπωνόταν στο 1 ο μέρος της προγραμματιστικής εργασίας. R <tm>: Γεγονός τύπου Prune το οποίο σηματοδοτεί την εκκίνηση ενέργειας αποστολής των πληροφοριών κάθε ομάδας που έχουν χρονοσφραγίδα μικρότερη της <tm> στους συνδρομητές που είναι εγγεγραμμένοι στην ομάδα αυτή. Ενέργεια αυτή ονομάζεται και ενέργεια «κλαδέματος» (pruning) των δένδρων πληροφοριών που κρατούνται στον εξυπηρέτη. Αυτό το γεγονός μπορεί π.χ., να χρειαστεί να συμβεί επειδή ο εξυπηρετητής (server) αποφασίζει πως ο χώρος που διαθέτει δεν 6

7 επαρκεί για την αποθήκευση περισσότερων πληροφοριών, οπότε θα πρέπει να προωθήσει μερικές από τις αποθηκευμένες πληροφορίες στους συνδρομητές (ελευθερώνοντας έτσι χώρο για την αποθήκευση νέων πληροφοριών). Κατά την εκτέλεση του γεγονότος αυτού, για κάθε ομάδα G[k] πραγματοποιούνται οι εξής ενέργειες. Γίνεται διάσχιση του δένδρου πληροφοριών της G[k] και για κάθε εγγραφή Ι η οποία έχει χρονοσφραγίδα μικρότερη από ή ίση με <tm>, η εγγραφή Ι διαγράφεται από το δένδρο. Για κάθε εγγραφή S της λίστας συνδρομών της G[k], η Ι εισάγεται στο δένδρο κατανάλωσης του S που αντιστοιχεί στην ομάδα G[k] (δηλαδή στο δένδρο κατανάλωσης που δεικτοδοτείται από τον δείκτη tgp[k] του S). Μετά το πέρας της εκτέλεσης ενός τέτοιου γεγονότος το πρόγραμμα θα πρέπει να τυπώνει την ακόλουθη πληροφορία: R DONE GROUPID = <gid1>, INFOLIST = <iid 1 1, iid 2 1,, iid r1 1 >, SUBLIST = < 1 1, 2 1,, n1 1 > GROUPID = <gid2>, INFOLIST = <iid 1 2, iid 2 2,, iid r2 2 >, SUBLIST = < 1 2, 2 2,, n2 2 > GROUPID = <gidmg>, INFOLIST= <iid 1 MG, iid 2 MG,, iid rmg MG >, SUBLIST= < 1 MG, 2 MG,, nmg MG > SUBSCRIBERID = <1>, GROUPLIST = <gid 1 1 >, TREELIST= <tid 1 1 (<gid 1 1 >), tid 2 1 (<gid 1 1 >),, tid r1 1 (<gid 1 1 >)>, <gid v1 1 >, TREELIST = <tid 1 1 (<gid v1 1 >), tid 2 1 (<gid v1 1 >),, tid rv1 1 (<gid v1 1 >)>, SUBSCRIBERID = <2>, GROUPLIST = <gid 1 2 >, TREELIST = < tid 1 2 (<gid 1 2 >), tid 2 2 (<gid 1 2 >),, tid r2 2 (<gid 1 2 >)> <gid v2 2 >, TREELIST = < tid 1 2 (<gid v2 2 >), tid 2 2 (<gid v2 2 >),, tid rv2 2 (<gid v2 2 >)> SUBSCRIBERID = <q>, GROUPLIST = <gid 1 q >, TREELIST = < tid 1 q (<gid 1 q >), tid 2 (<gid 1 q >),, tid rq q (<gid 1 q >)> <gid vq q >, TREELIST = < tid 1 q (<gid vq q >), tid 2 q (<gid vq q >),, tid rvq q (<gid vq q >)> όπου <gidi>, 1 i MG, είναι το αναγνωριστικό της ομάδας G[<gIdi>], <iid 1 i, iid 2 i,, iid ri i > είναι τα αναγνωριστικά των εγγραφών πληροφοριών που είναι αποθηκευμένα στο δένδρο πληροφοριών της ομάδας και < 1 i, 2 i,, ni i > είναι η λίστα συνδρομών της. Επιπρόσθετα, <j> είναι το αναγνωριστικό του j-οστού στοιχείου του πίνακα κατακερματισμού των συνδρομητών, <gid 1 j,, gid vj j > είναι τα αναγνωριστικά των ομάδων για τις οποίες ενδιαφέρεται ο συνδρομητής με αναγνωριστικό <j> και για κάθε τέτοια ομάδα <gid l j >, <tid 1 j (<gid l j >),, tid rvl j (<gid l j >)> είναι οι πληροφορίες που περιέχονται στο δένδρο κατανάλωσης του συνδρομητή με αναγνωριστικό <j> που δεικτοδοτείται από τον δείκτη tgp[<gid l j >]. C <>: Κατά το γεγονός τύπου Cnsume, κάθε συνδρομητής καταναλώνει τις νέες πληροφορίες που περιέχονται στα δένδρα πληροφοριών που δεικτοδοτούνται από τους tgp δείκτες που περιέχει η εγγραφή του συνδρομητή στον πίνακα κατακερματισμού συνδρομητών. Συγκεκριμένα, για κάθε ομάδα k για την οποία ενδιαφέρεται ο συνδρομητής, καταναλώνονται όλες οι πληροφορίες που δημοσιεύθηκαν μετά από την τελευταία εκτέλεση από το συνδρομητή της λειτουργίας κατανάλωσης για την ομάδα αυτή. Αυτό γίνεται με την ανάγνωση των στοιχείων της λίστας των φύλλων του δένδρου κατανάλωσης tgp[k] ξεκινώντας από την εγγραφή της λίστας αυτής στην οποία δείχνει ο 7

8 sgp[k] (δηλαδή από την τελευταία εγγραφή που ο συνδρομητής έχει καταναλώσει σε αυτή την ομάδα) μέχρι και την τελευταία εγγραφή της λίστας αυτής (δηλαδή μέχρι και το δεξιότερο φύλλο του δένδρου κατανάλωσης tgp[k]). Στο τέλος της διαδικασίας κατανάλωσης, ο δείκτης sgp[k] ενημερώνεται ώστε να δείχνει στο δεξιότερο φύλλο του δένδρου κατανάλωσης tgp[k]. Είναι σημαντικό πως ο δείκτης sgp[k] θα έχει την τιμή NULL εάν δεν έχει προηγηθεί γεγονός τύπου Prune ή αν δεν υπάρχουν δημοσιευμένες πληροφορίες που να αφορούν την ομάδα G[k] κατά την εκτέλεση του τελευταίου γεγονότος Prune. Μετά το πέρας της εκτέλεσης ενός τέτοιου γεγονότος το πρόγραμμα θα πρέπει να τυπώνει την ακόλουθη πληροφορία: C <> DONE GROUPID = <gid1>, TREELIST = <tid 1 1, tid 2 1,, tid r1 1 >, NEWSGP = <tid1> GROUPID = <gid2>, TREELIST = <tid 1 2, tid 2 2,, tid r2 2 >, NEWSGP = <tid2> GROUPID = <gidk>, TREELIST = <tid 1 k, tid 2 k,, tid rk k >, NEWSGP = <tidk> όπου <> είναι τ αναγνωριστικό τυ συνδρομητή, <gidi>, όπου 1 i k, είναι τα αναγνωριστικά των ομάδων στις οποίες έχει εγγραφεί ο συνδρομητής και <tιd 1 i, tιd 2 i,, tιd ri i > είναι τα αναγνωριστικά των εγγραφών πληροφοριών που καταναλώθηκαν από εκείνο το δένδρο κατανάλωσης του συνδρομητή που αντιστοιχεί στην ομάδα <gidi>. Τέλος, tidi είναι το αναγνωριστικό της τελευταίας πληροφορίας που καταναλώθηκε από τη λίστα φύλλων του δένδρου κατανάλωσης tgp[<gidi>] του συνδρομητή με αναγνωριστικό <>(στην οποία θα πρέπει να δείχνει ο δείκτης sgp[<gidi>] του συνδρομητή <> όταν η λειτουργία κατανάλωσης τερματίσει την εκτέλεσή της). D <>: Γεγονός τύπου Delete_Subscriber. Το γεγονός αυτό σηματοδοτεί την αποχώρηση του συνδρομητή με αναγνωριστικό <> από το σύστημα. Η εγγραφή που αναφέρεται στον συνδρομητή με αναγνωριστικό <> θα πρέπει να διαγραφεί από τη λίστα συνδρομητών. Το ίδιο ισχύει για όλες τις δομές δεδομένων που διατηρεί αυτός ο συνδρομητής (όπως π.χ., τα δένδρα κατανάλωσης που αντιστοιχούν στις ομάδες στις οποίες είναι εγγεγραμμένος ο συνδρομητής). Επίσης, θα πρέπει να διαγραφεί η εγγραφή που αναφέρεται στη συνδρομή του εν λόγω συνδρομητή από κάθε ομάδα στην οποία έχει εγγραφεί ο συνδρομητής. Μετά το πέρας της εκτέλεσης ενός τέτοιου γεγονότος το πρόγραμμα θα πρέπει να τυπώνει την ίδια πληροφορία όπως και στο 1 ο μέρος της προγραμματιστικής εργασίας. P: Γεγονός τύπου Print που σηματοδοτεί την εκτύπωση των δομών δεδομένων του συστήματος. Συγκεκριμένα, για κάθε μία από τις ομάδες, θα πρέπει να εκτυπώνεται η λίστα των πληροφοριών της και των συνδρομών της. Επίσης, θα πρέπει να εκτυπώνεται η λίστα με τους συνδρομητές και για κάθε έναν από αυτούς να εκτυπώνονται οι συνδρομές του, δηλαδή εκείνα τα στοιχεία του πίνακα sgp που περιγράφουν τις ομάδες για τις οποίες ενδιαφέρεται ο συνδρομητής. Μετά το πέρας της εκτέλεσης ενός τέτοιου γεγονότος το πρόγραμμα θα πρέπει να τυπώνει την ακόλουθη πληροφορία: P DONE GROUPID = <gid1>, INFOLIST = <iid 1 1, iid 2 1,, iid r1 1 >, SUBLIST = < iid 1 1, iid 2 1,, iid n1 1 > GROUPID = <gid2>, INFOLIST = <iid 1 2, iid 2 2,, iid r2 2 >, SUBLIST = < iid 1 2, iid 2 2,, iid n2 2 > GROUPID = <gidmg>, INFOLIST= <iid 1 MG, iid 2 MG,, iid rk MG >, SUBLIST= < iid 1 MG, iid 2 MG,, iid nk MG > SUBSCRIBERLIST = <1, 2,, m> 8

9 SUBSCRIBERID = <1>, GROUPLIST = <gid 1 1 >, TREELIST= <tid 1 1 (<gid 1 1 >), tid 2 1 (<gid 1 1 >),, tid r1 1 (<gid 1 1 >)>, <gid v1 1 >, TREELIST = <tid 1 1 (<gid v1 1 >), tid 2 1 (<gid v1 1 >),, tid rv1 1 (<gid v1 1 >)>, SUBSCRIBERID = <2>, GROUPLIST = <gid 1 2 >, TREELIST = < tid 1 2 (<gid 1 2 >), tid 2 2 (<gid 1 2 >),, tid r1 2 (<gid 1 2 >)> <gid v2 2 >, TREELIST = < tid 1 2 (<gid v2 2 >), tid 2 2 (<gid v2 2 >),, tid rv2 2 (<gid v2 2 >)> SUBSCRIBERID = <q>, GROUPLIST = <gid 1 q >, TREELIST = < tid 1 q (<gid 1 q >), tid 2 q (<gid 1 q >),, tid rq q (<gid 1 q >)> <gid vq q >, TREELIST = < tid 1 q (<gid vq q >), tid 2 q (<gid vq q >),, tid rvq q (<gid vq q >)> NO_GROUPS = <number f grups>, NO_SUBSCRIBERS = <number f subscribers> όπου <gidi>, 1 i MG, είναι το αναγνωριστικό της ομάδας G[<gIdi>], <iid 1 i, iid 2 i,, iid ri i > είναι η λίστα πληροφοριών της και < iid 1 i, iid 2 i,, iid ni i > είναι η λίστα συνδρομών της. Επιπρόσθετα, <j> είναι το αναγνωριστικό του j-οστού στοιχείου της λίστας συνδρομητών, <gid 1 j,, gid vj j > είναι τα για κάθε τέτοια ομάδα <gid l j >, <tid 1 j (<gid l j >),, tid rvl j (<gid l j >)> είναι οι πληροφορίες που περιέχονται στο δένδρο κατανάλωσης του συνδρομητή με αναγνωριστικό <j> που δεικτοδοτείται από τον δείκτη tgp[<gid l j >]. Τέλος, <number f grups> είναι το συνολικό πλήθος των έγκυρων ομάδων (δηλαδή αυτών στις οποίες έχουν δημοσιευθεί δεδομένα) και <number f subscribers> είναι το συνολικό πλήθος των συνδρομητών στο σύστημα. Το πρόγραμμα που θα δημιουργηθεί πρέπει να διαβάζει το αρχείο εισόδου και να εκτελεί με τη σειρά όλα τα γεγονότα που περιγράφονται σε αυτό. Οδηγίες και Συμβουλές για την Ομαλή Διεκπεραίωση της Εργασίας Όπως και με τα προηγούμενα μέρη της εργασίας, το μέρος αυτό θα πρέπει να πραγματοποιηθεί σε βήματα. Ο κάθε φοιτητής είναι υπεύθυνος να αποφασίσει ποια βήματα ταιριάζουν στον τρόπο εργασίας του. Στη συνέχεια, παρατίθεται μια δυνητική συνοπτική ακολουθία βημάτων που θα μπορούσε να ακολουθηθεί για την ομαλή διεκπεραίωση της εργασίας. Βήμα 1: Ξεκινήστε υλοποιώντας, σε ένα νέο αρχείο, ένα ταξινομημένο, διπλά συνδεδεμένο, δυαδικό δένδρο. Γράψτε κώδικα για τις διαδικασίες BST_Insert, BSΤ_Delete και BST_LkUp που θα επιτρέψουν να πραγματοποιείτε εισαγωγές, διαγραφές και αναζητήσεις, αντίστοιχα, σε ένα ταξινομημένο, διπλά συνδεδεμένο ταξινομημένο δένδρο. Οι διαδικασίες αυτές θα πρέπει να έχουν χρονική πολυπλοκότητα Ο(h), όπου h είναι το ύψος του δένδρου. Δημιουργήστε μια διαδικασία BST_Print() για την εκτύπωση των στοιχείων του δένδρου η οποία θα σας βοηθήσει να ελέγξετε την ορθότητα των διαδικασιών που περιγράφονται παραπάνω. Δημιουργήστε τον κώδικα σας σε ένα νέο αρχείο και φτιάξτε μια δική σας main() για να ελέγξετε ότι ο κώδικας που υλοποιεί τις λειτουργίες ενός ταξινομημένου, διπλά συνδεδεμένου, δυαδικού δένδρου λειτουργεί σωστά. Όταν είστε σίγουροι για αυτό συνεχίστε με το επόμενο βήμα. Ο κώδικας που έχετε δημιουργήσει στο 1 ο μέρος της προγραμματιστικής εργασίας δεν χρησιμοποιείται καθόλου σε αυτό το βήμα (εδώ απλά υλοποιείτε ένα ταξινομημένο, διπλά-συνδεδεμένο, δυαδικό δένδρο του οποίου κάθε στοιχείο είναι τύπου struct Inf). Βήμα 2: Τροποποιείστε ένα αντίγραφο του μέρους 1 της προγραμματιστικής εργασίας, έτσι ώστε η λίστα πληροφοριών κάθε ομάδας να αντικατασταθεί από ένα ταξινομημένο, διπλά συνδεδεμένο, δυαδικό δένδρο πληροφοριών (χρησιμοποιώντας τον κώδικα του βήματος 1). Στο βήμα αυτό απενεργοποιήστε (π.χ., βάλτε σε σχόλια ή αφαιρέστε) τον κώδικα που έχετε γράψει για το γεγονός τύπου Cnsume στο 1 ο μέρος της προγραμματιστικής εργασίας. Διορθώστε κατάλληλα τον κώδικα που αντιστοιχεί στο γεγονός τύπου I, ώστε αυτός να λειτουργεί σωστά δεδομένου ότι η λίστα πληροφοριών κάθε ομάδας έχει αντικατασταθεί από ένα δένδρο πληροφοριών. 9

10 Βήμα : Δημιουργείστε ένα αντίγραφο του κώδικα που δημιουργήσατε στο Βήμα 1 και τροποποιήστε τον κώδικα αυτόν κατάλληλα ώστε να εκτελείται σωστά πάνω σε φυλλοπροσανατολισμένα, ταξινομημένα, διπλά συνδεδεμένα, δυαδικά δένδρα. Οι κόμβοι καθενός από τα δένδρα αυτά πρέπει να είναι τύπου struct TreeInf και το δένδρο πρέπει να είναι ταξινομημένο ως προς το πεδίο ttm των κόμβων του. Γράψτε κώδικα για τις διαδικασίες LO_BST_Insert, και LO_BST_LkUp που θα επιτρέψουν να πραγματοποιείτε εισαγωγές και αναζητήσεις, αντίστοιχα, σε ένα φυλλοπροσανατολισμένο, ταξινομημένο, διπλά συνδεδεμένο, δυαδικό δένδρο. Είναι αξιοσημείωτο πως προκειμένου να διατηρείται σωστά η ιδιότητα διασύνδεσης των φύλλων τέτοιων δένδρων χρειάζεστε μια συνάρτηση η οποία θα παίρνει ως παράμετρο έναν δείκτη p σε ένα κόμβο φύλλο του δένδρου και θα επιστρέφει έναν δείκτη στο αμέσως προηγούμενο φύλλο του δένδρου (δηλαδή στο φύλλο του δένδρου με το μεγαλύτερο κλειδί μεταξύ εκείνων των φύλλων που έχουν μικρότερα κλειδιά από εκείνο του κόμβου p). H συνάρτηση αυτή θα πρέπει να υλοποιηθεί έτσι ώστε η χρονική της πολυπλοκότητα να είναι Ο(h), όπου h είναι το ύψος του φυλλοπροσανατολισμένου δένδρου. Την ίδια χρονική πολυπλοκότητα θα πρέπει να έχουν οι LO_BST_Insert() και LO_BST_LkUp(). Ο κώδικας που προκύπτει από το βήμα 2 δεν χρειάζεται στο βήμα αυτό. Μόνο όταν είστε βέβαιοι πως οι λειτουργίες LO_BST_Insert() και LO_BST_LkUp() λειτουργούν σωστά όταν εκτελούνται σε φυλλοπροσανατολισμένα δένδρα, προχωρήστε στο επόμενο βήμα. Βήμα 4: Ενσωματώστε τον κώδικα του Βήματος στον κώδικα που προέκυψε από το Βήμα 2 και δημιουργήστε μια πρώτη έκδοση της προγραμματιστικής εργασίας στην οποία θα έχετε υλοποιήσει το γεγονός τύπου Prune αλλά χωρίς να έχετε αντικαταστήσει τη λίστα συνδρομητών από πίνακα κατακερματισμού. Διορθώστε κατάλληλα τον κώδικα του γεγονότος τύπου Cnsume (που είχατε δημιουργήσει στο 1 ο μέρος) ώστε να λειτουργεί με τον τρόπο που περιγράφεται στο τρέχον μέρος της εργασίας. Διορθώστε κατάλληλα τα γεγονότα τύπου S, D και P ώστε να λειτουργούν σωστά με τα νέα δεδομένα. Βήμα : Σε ένα νέο αρχείο γράψτε κώδικα ο οποίος θα υλοποιεί έναν πίνακα κατακερματισμού που χρησιμοποιεί τη μέθοδο επίλυσης συγκρούσεων των ξεχωριστών αλυσίδων. Τα στοιχεία των αλυσίδων του πίνακα κατακερματισμού πρέπει να είναι τύπου struct SubInf. Υλοποιήστε μια συνάρτηση Universal_Hash_Functin() η οποία θα υλοποιεί την καθολική κλάση συναρτήσεων προγραμματισμού. Υλοποιήστε τις συναρτήσεις HT_Insert(), HT_Delete() και HT_LkUp(), οι οποίες πραγματοποιούν εισαγωγές, διαγραφές και αναζητήσεις, αντίστοιχα, στον πίνακα κατακερματισμού. Γράψτε κώδικα ο οποίος θα εκτυπώνει όλα τα δεδομένα του πίνακα κατακερματισμού (σε μορφή κοντινή αυτής που ζητείται στο τρέχον μέρος της εργασίας). Μόνο όταν σιγουρευτείτε πως ο κώδικας που ετοιμάσατε στο βήμα αυτό είναι σωστός προχωρήστε στο επόμενο βήμα. Βήμα 6: Συνδυάστε τον κώδικα του Βήματος με εκείνον του βήματος 4 για να πάρετε την τελική μορφή της εργασίας. Βήμα 7: Ελέγξετε την ορθότητα του κώδικα που δημιουργήσατε εκτελώντας τον κώδικά σας σε όλα τα αρχεία εκτέλεσης που θα σας παρέχουν οι βοηθοί του μαθήματος. Επιπρόσθετα, δημιουργήστε τα δικά σας αρχεία γεγονότων για να ελέγξετε με περισσότερη ακρίβεια την ορθότητα του κώδικά σας. Δομές Δεδομένων Στο Σχήμα 8 παρουσιάζονται οι δομές σε C που πρέπει να χρησιμοποιηθούν για την υλοποίηση της παρούσας εργασίας. struct Inf { int iid; int itm; int ; struct Inf *ilc; struct Inf *irc; struct Inf *; }; struct Subscrtin { int ; struct Subscrtin *snext; }; // Εγγραφή δένδρου πληροφοριών // Αναγνωριστικό πληροφορίας // Χρονοσφραγίδα δημοσίευσης πληροφορίας // Αυτό πρέπει να είναι ο πίνακας igp MG θέσεων // Δείκτης στον αριστερό θυγατρικό κόμβο // Δείκτης στο δεξιό θυγατρικό κόμβο // Δείκτης στον πατρικό κόμβο // Εγγραφή λίστας συνδρομών // Αναγνωριστικό Συνδρομητή // Επόμενη εγγραφή λίστας συνδρομών

11 struct Grup { int gid; struct Subscrtin *gsub; struct Inf *gr; }; // Εγγραφή πίνακα ομάδων // Αναγνωριστικό ομάδας // Δείκτης στο πρώτο στοιχείο λίστας συνδρομών // Δείκτης στη ρίζα του δένδρου πληροφοριών struct SubInf { int ; int stm; struct TreeInf *tgp[mg]; struct TreeInf *sgp[mg]; struct SubInf *snext; }; // Εγγραφή πίνακα κατακερματισμού συνδρομητών // Αναγνωριστικό συνδρομητή // Χρονοσφραγίδα δημιουργίας συνδρομητή // Πίνακας tgp MG θέσεων // Πίνακας sqp MG θέσεων // Δείκτης στο επόμενο στοιχείο της αλυσίδας του πίνακα κατακερματισμού συνδρομητών Struct TreeInf { // Εγγραφή δένδρου κατανάλωσης int tid; // Αναγνωριστικό πληροφορίας int ttm; // Χρονοσφραγίδα δημοσίευσης πληροφορίας struct TreeInf *tlc; // Δείκτης στον αριστερό θυγατρικό κόμβο struct TreeInf *trc; // Δείκτης στον δεξιό θυγατρικό κόμβο struct TreeInf *tp; // Δείκτης στον πατρικό κόμβο struct TreeInf *next; // Δείκτης στο επόμενο φύλλο προς τα δεξιά (NULL αν η εγγραφή δεν αντιστοιχεί σε κόμβο φύλλο) }; // Οι παρακάτω δομές θα ήταν προτιμότερο αν δηλωθούν όχι ως glbal μεταβλητές // αλλά ως τοπικές μεταβλητές της main και συνίσταται στους φοιτητές που έχουν // πολύ καλές γνώσεις προγραμματισμού να ακολουθήσουν αυτή την τακτική // παρότι η δυσκολία υλοποίησης αυξάνει με αυτό τον τρόπο. struct Grup G[MG]; struct SubInf *T[MG]; // Πίνακας ομάδωνg MG θέσεων // Πίνακας κατακερματισμού συνδρομητώνmg θέσεων Σχήμα 8 Παράδειγμα δημιουργίας φυλλοπροσανατολισμένου δένδρου Στο Σχήμα 9 εξηγείται ο τρόπος με τον οποίο μπορεί να παραχθεί το δένδρο του Σχήματος 6. Συγκεκριμένα παρουσιάζονται διαδοχικά οι εισαγωγές των κόμβων του. 11

12 Insert() Insert() Insert() Insert() Insert(0) 0 Σχήμα 9

ΗΥ240: Δομές Δεδομένων Χειμερινό Εξάμηνο Ακαδημαϊκό Έτος Διδάσκουσα: Παναγιώτα Φατούρου. Προγραμματιστική Εργασία 1 ο Μέρος

ΗΥ240: Δομές Δεδομένων Χειμερινό Εξάμηνο Ακαδημαϊκό Έτος Διδάσκουσα: Παναγιώτα Φατούρου. Προγραμματιστική Εργασία 1 ο Μέρος Πανεπιστήμιο Κρήτης, Τμήμα Επιστήμης Υπολογιστών 12 Οκτωβρίου 2009 ΗΥ240: Δομές Δεδομένων Χειμερινό Εξάμηνο Ακαδημαϊκό Έτος 2009-10 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία 1 ο Μέρος Ημερομηνία

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

HY240 : Δομές Δεδομένων. Φροντιστήριο Προγραμματιστικής Εργασίας 2 ο και 3 ο Μέρος

HY240 : Δομές Δεδομένων. Φροντιστήριο Προγραμματιστικής Εργασίας 2 ο και 3 ο Μέρος HY240 : Δομές Δεδομένων Φροντιστήριο Προγραμματιστικής Εργασίας 2 ο και 3 ο Μέρος Εισαγωγή Στο 2 ο μέρος της εργασίας θα πρέπει να γίνουν τροποποιήσεις στο πρόγραμμα που προέκυψε κατά την υλοποίηση του

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

ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος Παναγιώτα Φατούρου. Προγραµµατιστική Εργασία 3 ο Μέρος

ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος Παναγιώτα Φατούρου. Προγραµµατιστική Εργασία 3 ο Μέρος Πανεπιστήµιο Κρήτης, Τµήµα Επιστήµης Υπολογιστών 6 εκεµβρίου 2008 ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος 2008-09 Παναγιώτα Φατούρου Προγραµµατιστική Εργασία 3 ο Μέρος Ηµεροµηνία Παράδοσης:

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

Προγραµµατιστική Εργασία 1 ο Μέρος

Προγραµµατιστική Εργασία 1 ο Μέρος Πανεπιστήµιο Κρήτης, Τµήµα Επιστήµης Υπολογιστών 4 Νοεµβρίου 2011 ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος 2011-12 ιδάσκουσα: Παναγιώτα Φατούρου Προγραµµατιστική Εργασία 1 ο Μέρος Ηµεροµηνία

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

ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος Παναγιώτα Φατούρου. Προγραµµατιστική Εργασία 1 ο Μέρος

ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος Παναγιώτα Φατούρου. Προγραµµατιστική Εργασία 1 ο Μέρος Πανεπιστήµιο Κρήτης, Τµήµα Επιστήµης Υπολογιστών 15 Οκτωβρίου 2008 ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος 2008-09 Παναγιώτα Φατούρου Προγραµµατιστική Εργασία 1 ο Μέρος Ηµεροµηνία Παράδοσης:

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

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2018 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2o Μέρος

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2018 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2o Μέρος ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2018 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2o Μέρος Ημερομηνία Παράδοσης: Δευτέρα, 14 Μαΐου 2018, ώρα 23:59 Τρόπος Παράδοσης: Χρησιμοποιώντας

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

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2017 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2o Μέρος

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2017 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2o Μέρος ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2017 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2o Μέρος Ημερομηνία Παράδοσης: Δευτέρα, 15 Μαΐου 2017, ώρα 23:59. Τρόπος Παράδοσης:

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

Προγραµµατιστική Εργασία 2 ο Μέρος

Προγραµµατιστική Εργασία 2 ο Μέρος Πανεπιστήµιο Κρήτης, Τµήµα Επιστήµης Υπολογιστών 20 Νοεµβρίου 2012 ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος 2011-12 ιδάσκουσα: Παναγιώτα Φατούρου Προγραµµατιστική Εργασία 2 ο Μέρος Ηµεροµηνία

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

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος Προγραμματιστική Εργασία - 2o Μέρος

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος Προγραμματιστική Εργασία - 2o Μέρος Πανεπιστήµιο Κρήτης Τµήµα Επιστήµης Υπολογιστών, 4 Μαρτίου 2019 ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2018-2019 Προγραμματιστική Εργασία - 2o Μέρος Ημερομηνία Παράδοσης: Δευτέρα, 13 Μαϊου

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

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2018 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 1o Μέρος

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2018 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 1o Μέρος ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2018 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 1o Μέρος Ημερομηνία Παράδοσης: Κυριακή, 1 Απριλίου 2018, ώρα 23:59 Τρόπος Παράδοσης:

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

Προγραµµατιστική Εργασία - 2 ο Μέρος

Προγραµµατιστική Εργασία - 2 ο Μέρος Πανεπιστήµιο Κρήτης, Τµήµα Επιστήµης Υπολογιστών 1 εκεµβρίου 2011 ΗΥ240: οµές εδοµένων Εαρινό Εξάµηνο Ακαδηµαϊκό Έτος 2011-12 ιδάσκουσα: Παναγιώτα Φατούρου Προγραµµατιστική Εργασία - 2 ο Μέρος Ηµεροµηνία

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

ΗΥ240: Δοµές Δεδοµένων Εαρινό Εξάµηνο Ακαδηµαϊκό Έτος 2017 Διδάσκουσα: Παναγιώτα Φατούρου Προγραµµατιστική Εργασία - 1 ο Μέρος

ΗΥ240: Δοµές Δεδοµένων Εαρινό Εξάµηνο Ακαδηµαϊκό Έτος 2017 Διδάσκουσα: Παναγιώτα Φατούρου Προγραµµατιστική Εργασία - 1 ο Μέρος ΗΥ240: Δοµές Δεδοµένων Εαρινό Εξάµηνο Ακαδηµαϊκό Έτος 2017 Διδάσκουσα: Παναγιώτα Φατούρου Προγραµµατιστική Εργασία - 1 ο Μέρος Ηµεροµηνία Παράδοσης: Δευτέρα, 3 Απριλίου 2017, ώρα 23:59. Τρόπος Παράδοσης:

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

ΗΥ240: Δομές Δεδομένων Χειμερινό Εξάμηνο Ακαδημαϊκό Έτος Διδάσκουσα: Παναγιώτα Φατούρου. Προγραμματιστική Εργασία 1 ο Μέρος

ΗΥ240: Δομές Δεδομένων Χειμερινό Εξάμηνο Ακαδημαϊκό Έτος Διδάσκουσα: Παναγιώτα Φατούρου. Προγραμματιστική Εργασία 1 ο Μέρος Πανεπιστήμιο Κρήτης, Τμήμα Επιστήμης Υπολογιστών 12 Οκτωβρίου 2012 ΗΥ240: Δομές Δεδομένων Χειμερινό Εξάμηνο Ακαδημαϊκό Έτος 2011-12 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία 1 ο Μέρος Ημερομηνία

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

ΗΥ240: Δοµές Δεδοµένων Εαρινό Εξάµηνο Ακαδηµαϊκό Έτος 2016 Διδάσκουσα: Παναγιώτα Φατούρου Προγραµµατιστική Εργασία - 1 ο Μέρος

ΗΥ240: Δοµές Δεδοµένων Εαρινό Εξάµηνο Ακαδηµαϊκό Έτος 2016 Διδάσκουσα: Παναγιώτα Φατούρου Προγραµµατιστική Εργασία - 1 ο Μέρος ΗΥ240: Δοµές Δεδοµένων Εαρινό Εξάµηνο Ακαδηµαϊκό Έτος 2016 Διδάσκουσα: Παναγιώτα Φατούρου Προγραµµατιστική Εργασία - 1 ο Μέρος Ηµεροµηνία Παράδοσης: Κυριακή, 3 Απριλίου 2016, ώρα 23:59. Τρόπος Παράδοσης:

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

Δομές Δεδομένων (Εργ.) Ακ. Έτος Διδάσκων: Ευάγγελος Σπύρου. Εργαστήριο 10 Δυαδικά Δένδρα Αναζήτησης

Δομές Δεδομένων (Εργ.) Ακ. Έτος Διδάσκων: Ευάγγελος Σπύρου. Εργαστήριο 10 Δυαδικά Δένδρα Αναζήτησης ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ Δομές Δεδομένων (Εργ.) Ακ. Έτος 2017-18 Διδάσκων: Ευάγγελος Σπύρου Εργαστήριο 10 Δυαδικά Δένδρα Αναζήτησης 1. Στόχος του εργαστηρίου Στόχος του δέκατου εργαστηρίου

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

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

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

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

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 1o Μέρος

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 1o Μέρος ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2018-2019 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 1o Μέρος Ημερομηνία Παράδοσης: Δευτέρα, 1 Απριλίου 2019, ώρα 23:59 Τρόπος Παράδοσης:

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

ΗΥ240: Δοµές Δεδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος Διδάσκουσα: Παναγιώτα Φατούρου Προγραµµατιστική Εργασία - 1 ο Μέρος

ΗΥ240: Δοµές Δεδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος Διδάσκουσα: Παναγιώτα Φατούρου Προγραµµατιστική Εργασία - 1 ο Μέρος ΗΥ240: Δοµές Δεδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος 2016-2017 Διδάσκουσα: Παναγιώτα Φατούρου Προγραµµατιστική Εργασία - 1 ο Μέρος Ηµεροµηνία Παράδοσης: Δευτέρα, 14 Νοεµβρίου 2016, ώρα 23:59. Τρόπος

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

ΗΥ240: Δομές Δεδομένων Χειμερινό Εξάμηνο Ακαδημαϊκό Έτος Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2 ο Μέρος

ΗΥ240: Δομές Δεδομένων Χειμερινό Εξάμηνο Ακαδημαϊκό Έτος Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2 ο Μέρος ΗΥ240: Δομές Δεδομένων Χειμερινό Εξάμηνο Ακαδημαϊκό Έτος 2014-15 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2 ο Μέρος Ημερομηνία Παράδοσης: Παρασκευή, 19 Δεκεμβρίου 2014, ώρα 23:59. Τρόπος

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

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2016 Διδάσκουσα: Παναγιώτα Φατούρου. Προγραμματιστική Εργασία 2 ο Μέρος

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2016 Διδάσκουσα: Παναγιώτα Φατούρου. Προγραμματιστική Εργασία 2 ο Μέρος ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2016 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία 2 ο Μέρος Ημερομηνία Παράδοσης: Κυριακή, 15 Μαίου 2016, ώρα 23:59. Τρόπος Παράδοσης: Χρησιμοποιώντας

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

ΗΥ486 - Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο Δεύτερη Προγραμματιστική Εργασία

ΗΥ486 - Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο Δεύτερη Προγραμματιστική Εργασία ΗΥ486 - Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο 2015-2016 Δεύτερη Προγραμματιστική Εργασία Γενική περιγραφή Στη δεύτερη προγραμματιστική εργασία καλείστε να υλοποιήσετε ένα διομότιμο σύστημα (Peer-to-

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Άσκηση αυτοαξιολόγησης 3-4 Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών Ενότητες 3 & 4: ένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις Άσκηση 1 Γράψτε

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

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

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

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

Διάλεξη 17: Δυαδικά Δέντρα. Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Διάλεξη 17: Δυαδικά Δέντρα. Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ Διάλεξη 7: Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Δυαδικά Δένδρα Δυαδικά Δένδρα Αναζήτησης Πράξεις Εισαγωγής, Εύρεσης Στοιχείου, Διαγραφής Μικρότερου Στοιχείου Διδάσκων:

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

Προγραμματιστική Εργασία Μέρος Β. Δρακωνάκης Κώστας Παπαϊωάννου Αντώνης

Προγραμματιστική Εργασία Μέρος Β. Δρακωνάκης Κώστας Παπαϊωάννου Αντώνης Προγραμματιστική Εργασία Μέρος Β Δρακωνάκης Κώστας Παπαϊωάννου Αντώνης Διαδικαστικά Παράδοση: Σάββατο, 19 Δεκεμβρίου 2016, ώρα 23:59 Compile & run σε μηχανήματα της σχολής Μέρος της βαθμολογίας Τρόπος

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

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find)

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find) Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη (Union-Find) ΗΥ240 - Παναγιώτα Φατούρου 1 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης Έστω ότι S 1,, S k είναι ξένα υποσύνολα ενός συνόλου U, δηλαδή

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

HY-486 Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο

HY-486 Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο HY-486 Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο 2017-2018 Πρώτη Προγραμματιστική Εργασία Προθεσμία παράδοσης: Δευτέρα 30/4 στις 23:59. 1. Γενική Περιγραφή Στην πρώτη προγραμματιστική εργασία καλείστε

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

ΗΥ240: Δομές Δεδομένων Χειμερινό Εξάμηνο Ακαδημαϊκό Έτος Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2 ο Μέρος

ΗΥ240: Δομές Δεδομένων Χειμερινό Εξάμηνο Ακαδημαϊκό Έτος Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2 ο Μέρος ΗΥ240: Δομές Δεδομένων Χειμερινό Εξάμηνο Ακαδημαϊκό Έτος 2017-2018 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2 ο Μέρος Ημερομηνία Παράδοσης: Παρασκευή, 22 Δεκεμβρίου 2017, ώρα 23:59. Τρόπος

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

Θεωρητικό Μέρος. int rec(int n) { int n1, n2; if (n <= 5) then return n; else { n1 = rec(n-5); n2 = rec(n-3); return (n1+n2); } }

Θεωρητικό Μέρος. int rec(int n) { int n1, n2; if (n <= 5) then return n; else { n1 = rec(n-5); n2 = rec(n-3); return (n1+n2); } } Πανεπιστήµιο Ιωαννίνων, Τµήµα Πληροφορικής 2 Νοεµβρίου 2005 Η/Υ 432: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκού Έτους 2005-2006 Παναγιώτα Φατούρου Ηµεροµηνία Παράδοσης 1 ο Σετ Ασκήσεων Θεωρητικό Μέρος:

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

HY-486 Αρχές Κατανεμημένου Υπολογισμού

HY-486 Αρχές Κατανεμημένου Υπολογισμού HY-486 Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο 2016-2017 Πρώτη Προγραμματιστική Εργασία Προθεσμία παράδοσης: Τρίτη 2/5 στις 23:59. 1. Γενική Περιγραφή Στην πρώτη προγραμματιστική εργασία καλείστε

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

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

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

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

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα). Κ08 Δομές Δεδομένων και Τεχνικές Προγραμματισμού Διδάσκων: Μανόλης Κουμπαράκης Εαρινό Εξάμηνο 2016-2017. Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

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

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

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

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

HY-486 Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο

HY-486 Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο HY-486 Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο 2016-2017 Δέυτερη Προγραμματιστική Εργασία Προθεσμία παράδοσης: 19/6/2017 1. Γενική Περιγραφή Στην δεύτερη προγραμματιστική εργασία καλείστε να υλοποιήσετε

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

https://csd.uoc.gr/~hy240b/current/submit.php

https://csd.uoc.gr/~hy240b/current/submit.php Project HY240b - 1η Φάση Διδάσκουσα: Παναγιώτα Φατούρου Βοηθός: Νικόλαος Μπατσαράς Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Ηράκλειο, 09 Μαρτίου 2018 Εισαγωγή Διαδικαστικά Θεματολογία Δομές Χρηστών

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

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find)

Ενότητα 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): επιστρέφει

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

Ενότητα 6: Κατακερματισμός Ασκήσεις και Λύσεις

Ενότητα 6: Κατακερματισμός Ασκήσεις και Λύσεις ΗΥ2, Ενότητα : Ασκήσεις και Λύσεις Ενότητα : Κατακερματισμός Ασκήσεις και Λύσεις Άσκηση 1 Χρησιμοποιήστε τη συνάρτηση κατακερματισμού της διαίρεσης ως πρωτεύουσα συνάρτηση κατακερματισμού και τη συνάρτηση

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

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

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

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

ΗΥ240: Δοµές Δεδοµένων Εαρινό Εξάµηνο Ακαδηµαϊκό Έτος Διδάσκουσα: Παναγιώτα Φατούρου Προγραµµατιστική Εργασία - 2 ο Μέρος

ΗΥ240: Δοµές Δεδοµένων Εαρινό Εξάµηνο Ακαδηµαϊκό Έτος Διδάσκουσα: Παναγιώτα Φατούρου Προγραµµατιστική Εργασία - 2 ο Μέρος ΗΥ240: Δοµές Δεδοµένων Εαρινό Εξάµηνο Ακαδηµαϊκό Έτος 2014-15 Διδάσκουσα: Παναγιώτα Φατούρου Προγραµµατιστική Εργασία - 2 ο Μέρος Ηµεροµηνία Παράδοσης: Κυριακή, 18 Μαΐου 2015, ώρα 23:59. Τρόπος Παράδοσης:

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

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

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

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

ΗΥ240: Δομές Δεδομένων Χειμερινό Εξάμηνο Ακαδημαϊκό Έτος Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2 ο Μέρος

ΗΥ240: Δομές Δεδομένων Χειμερινό Εξάμηνο Ακαδημαϊκό Έτος Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2 ο Μέρος ΗΥ240: Δομές Δεδομένων Χειμερινό Εξάμηνο Ακαδημαϊκό Έτος 2016-2017 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2 ο Μέρος Ημερομηνία Παράδοσης: Δευτέρα, 19 Δεκεμβρίου 2016, ώρα 23:59. Τρόπος

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

Διδάσκων: Κωνσταντίνος Κώστα

Διδάσκων: Κωνσταντίνος Κώστα Διάλεξη Ε4: Επανάληψη Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή σε δενδρικές δομές δεδομένων, Δυαδικά Δένδρα Αναζήτησης Ισοζυγισμένα Δένδρα & 2-3 Δένδρα Διδάσκων: Κωνσταντίνος

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

Δομές δεδομένων. Ενότητα 8: Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find) Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών

Δομές δεδομένων. Ενότητα 8: Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find) Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Ενότητα 8: Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find) Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών Ενότητα 8 Ξένα Σύνολα

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

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

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 19 Hashing - Κατακερματισμός 1 / 23 Πίνακες απευθείας πρόσβασης (Direct Access Tables) Οι πίνακες απευθείας

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

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

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

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

Κατακερματισμός (Hashing)

Κατακερματισμός (Hashing) Κατακερματισμός (Hashing) O κατακερματισμός είναι μια τεχνική οργάνωσης ενός αρχείου. Είναι αρκετά δημοφιλής μέθοδος για την οργάνωση αρχείων Βάσεων Δεδομένων, καθώς βοηθάει σημαντικά στην γρήγορη αναζήτηση

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εξωτερική Αναζήτηση. Ιεραρχία Μνήμης Υπολογιστή. Εξωτερική Μνήμη. Εσωτερική Μνήμη. Κρυφή Μνήμη (Cache) Καταχωρητές (Registers) μεγαλύτερη ταχύτητα

Εξωτερική Αναζήτηση. Ιεραρχία Μνήμης Υπολογιστή. Εξωτερική Μνήμη. Εσωτερική Μνήμη. Κρυφή Μνήμη (Cache) Καταχωρητές (Registers) μεγαλύτερη ταχύτητα Ιεραρχία Μνήμης Υπολογιστή Εξωτερική Μνήμη Εσωτερική Μνήμη Κρυφή Μνήμη (Cache) μεγαλύτερη χωρητικότητα Καταχωρητές (Registers) Κεντρική Μονάδα (CPU) μεγαλύτερη ταχύτητα Πολλές σημαντικές εφαρμογές διαχειρίζονται

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

Άσκηση 3 (ανακοινώθηκε στις 24 Απριλίου 2017, προθεσμία παράδοσης: 2 Ιουνίου 2017, 12 τα μεσάνυχτα).

Άσκηση 3 (ανακοινώθηκε στις 24 Απριλίου 2017, προθεσμία παράδοσης: 2 Ιουνίου 2017, 12 τα μεσάνυχτα). Κ08 Δομές Δεδομένων και Τεχνικές Προγραμματισμού Διδάσκων: Μανόλης Κουμπαράκης Εαρινό Εξάμηνο 2016-2017. Άσκηση 3 (ανακοινώθηκε στις 24 Απριλίου 2017, προθεσμία παράδοσης: 2 Ιουνίου 2017, 12 τα μεσάνυχτα).

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

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

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

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

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

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

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

h/2. Άρα, n 2 h/2-1 h 2log(n+1). Πως υλοποιούµε τη LookUp()? Πολυπλοκότητα?

h/2. Άρα, n 2 h/2-1 h 2log(n+1). Πως υλοποιούµε τη LookUp()? Πολυπλοκότητα? Κόκκινα-Μαύρα ένδρα (Red-Black Trees) Ένα κόκκινο-µαύρο δένδρο είναι ένα δυαδικό δένδρο αναζήτησης στο οποίο οι κόµβοι µπορούν να χαρακτηρίζονται από ένα εκ των δύο χρωµάτων: µαύρο-κόκκινο. Το χρώµα της

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

Διαχρονικές δομές δεδομένων

Διαχρονικές δομές δεδομένων Διαχρονικές δομές δεδομένων Μια τυπική δομή δεδομένων μεταβάλλεται με πράξεις εισαγωγής ή διαγραφής Π.χ. κοκκινόμαυρο δένδρο εισαγωγή 0 18 0 5 39 73 1 46 6 80 Αποκατάσταση ισορροπίας 5 39 73 0 46 6 80

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

Ο ΑΤΔ Λεξικό. Σύνολο στοιχείων με βασικές πράξεις: Δημιουργία Εισαγωγή Διαγραφή Μέλος. Υλοποιήσεις

Ο ΑΤΔ Λεξικό. Σύνολο στοιχείων με βασικές πράξεις: Δημιουργία Εισαγωγή Διαγραφή Μέλος. Υλοποιήσεις Ο ΑΤΔ Λεξικό Σύνολο στοιχείων με βασικές πράξεις: Δημιουργία Εισαγωγή Διαγραφή Μέλος Υλοποιήσεις Πίνακας με στοιχεία bit (0 ή 1) (bit vector) Λίστα ακολουθιακή (πίνακας) ή συνδεδεμένη Είναι γνωστό το μέγιστο

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

#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128]

#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128] ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εξετάσεις Α Περιόδου 2017 (27/1/2017) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 «Προγραμματισμός Η/Υ» - Τετράδιο Εργαστηρίου #4 2 Γενικά Στο Τετράδιο #4 του Εργαστηρίου θα αναφερθούμε σε θέματα διαχείρισης πινάκων

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

ΗΥ240: Δοµές Δεδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος Διδάσκουσα: Παναγιώτα Φατούρου Προγραµµατιστική Εργασία - 1 ο Μέρος

ΗΥ240: Δοµές Δεδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος Διδάσκουσα: Παναγιώτα Φατούρου Προγραµµατιστική Εργασία - 1 ο Μέρος ΗΥ240: Δοµές Δεδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος 2017-2018 Διδάσκουσα: Παναγιώτα Φατούρου Προγραµµατιστική Εργασία - 1 ο Μέρος Ηµεροµηνία Παράδοσης: Δευτέρα, 20 Νοεµβρίου 2017, ώρα 23:59. Τρόπος

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές δεδομένων. Ενότητα 7η: Ουρές Προτεραιότητας Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Ενότητα 7η: Ουρές Προτεραιότητας Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών Ενότητα 7 Ουρές Προτεραιότητας ΗΥ240 - Παναγιώτα Φατούρου 2 Ουρές

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

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

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

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

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

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

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

Προγραμματισμός Ι (ΗΥ120)

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 20: Δυαδικό Δέντρο Αναζήτησης Δυαδικό δέντρο Κάθε κόμβος «γονέας» περιέχει δύο δείκτες που δείχνουν σε δύο κόμβους «παιδιά» του ιδίου τύπου. Αν οι δείκτες προς αυτούς

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

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

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

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

13/5/2015 ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ. Δομές Δεδομένων. Ουρές Προτεραιότητας

13/5/2015 ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ. Δομές Δεδομένων. Ουρές Προτεραιότητας ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ Δομές Δεδομένων Τι θα δούμε Ουρές προτεραιότητας Πράξεις Διωνυμικές Ουρές Διωνυμικά Δέντρα Διωνυμικοί Σωροί Ουρές Fibonacci Αναπαράσταση Πράξεις Ανάλυση Συγκρίσεις Ουρές προτεραιότητας

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

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

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

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

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,

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

Κεφάλαιο 14 Προηγμένες Ουρές Προτεραιότητας

Κεφάλαιο 14 Προηγμένες Ουρές Προτεραιότητας Κεφάλαιο 14 Προηγμένες Ουρές Προτεραιότητας Περιεχόμενα 14.1 Διωνυμικά Δένδρα... 255 14.2 Διωνυμικές Ουρές... 258 14.1.1 Εισαγωγή στοιχείου σε διωνυμική ουρά... 258 14.1.2 Διαγραφή μεγίστου από διωνυμική

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

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

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

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

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

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

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

ΗΥ240: Δομές Δεδομένων Χειμερινό Εξάμηνο Ακαδημαϊκό Έτος Διδάσκουσα: Παναγιώτα Φατούρου. Προγραμματιστική Εργασία 2 ο Μέρος

ΗΥ240: Δομές Δεδομένων Χειμερινό Εξάμηνο Ακαδημαϊκό Έτος Διδάσκουσα: Παναγιώτα Φατούρου. Προγραμματιστική Εργασία 2 ο Μέρος ΗΥ240: Δομές Δεδομένων Χειμερινό Εξάμηνο Ακαδημαϊκό Έτος 2013-14 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία 2 ο Μέρος Ημερομηνία Παράδοσης: Τετάρτη, 15 Ιανουαρίου 2014, ώρα 23:59. Τρόπος Παράδοσης:

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στην Python και στο IDLE

ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στην Python και στο IDLE ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1 Θέμα εργαστηρίου: Εισαγωγή στην Python και στο IDLE Περιεχόμενο εργαστηρίου: - Το περιβάλλον ανάπτυξης προγραμμάτων IDLE - Διαδικασία ανάπτυξης προγραμμάτων Python - Απλά προγράμματα

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

Σύνοψη Προηγούμενου. Πίνακες (Arrays) Πίνακες (Arrays): Βασικές Λειτουργίες. Πίνακες (Arrays) Ορέστης Τελέλης

Σύνοψη Προηγούμενου. Πίνακες (Arrays) Πίνακες (Arrays): Βασικές Λειτουργίες. Πίνακες (Arrays) Ορέστης Τελέλης Σύνοψη Προηγούμενου Πίνακες (Arrays Ορέστης Τελέλης telelis@unipi.gr Τμήμα Ψηφιακών Συστημάτων, Πανεπιστήμιο Πειραιώς Διαδικαστικά θέματα. Aντικείμενο Μαθήματος. Aντικείμενα, Κλάσεις, Μέθοδοι, Μεταβλητές.

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

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

ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ Η/Υ, ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ Η/Υ, ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2016-2017 ΕΡΓΑΣΙΑ ΕΞΑΜΗΝΟΥ Ποιος πρέπει να ολοκληρώσει αυτή την εργασία? Φοιτητές έτους >= 2 που

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τ Μ Η Μ Α Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τ Μ Η Μ Α Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ ΕΠΛ 035 - ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΓΙΑ ΗΛΕΚΤΡΟΛΟΓΟΥΣ ΜΗΧΑΝΙΚΟΥΣ ΚΑΙ ΜΗΧΑΝΙΚΟΥΣ ΥΠΟΛΟΓΙΣΤΩΝ Ακαδηµαϊκό έτος 2017-2018 Υπεύθυνος εργαστηρίου: Γεώργιος

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

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

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

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

ΘΕΜΑ Α ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ

ΘΕΜΑ Α ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ 1ΗΣ ΣΕΛΙΔΑΣ ΘΕΜΑ Α ΑΝΑΚΕΦΑΛΑΙΩΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ Γ' ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΠΕΜΠΤΗ 26 ΑΠΡΙΛΙΟΥ 2012 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ (ΚΥΚΛΟΥ

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ 2 ο ΣΕΤ ΑΣΚΗΣΕΩΝ Οι ασκήσεις αυτού του φυλλαδίου καλύπτουν τα παρακάτω θέματα: Συναρτήσεις (κεφάλαιο Functions)

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 4. Προθεσµία: 8/1/12, 22:00

ΣΕΤ ΑΣΚΗΣΕΩΝ 4. Προθεσµία: 8/1/12, 22:00 ΣΕΤ ΑΣΚΗΣΕΩΝ 4 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2011-2012 Προθεσµία: 8/1/12, 22:00 Περιεχόµενα Διαβάστε πριν ξεκινήσετε Εκφώνηση άσκησης Οδηγίες αποστολής άσκησης Πριν ξεκινήσετε (ΔΙΑΒΑΣΤΕ

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

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

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

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

Άσκηση 1. με κόκκινο χρώμα σημειώνονται οι κρίσιμοι κόμβοι

Άσκηση 1. με κόκκινο χρώμα σημειώνονται οι κρίσιμοι κόμβοι Άσκηση 1 α) Παρουσιάστε τα AVL δέντρα που προκύπτουν από τις εισαγωγές των κλειδιών 1, 4, 9,, 7,,, 1, 4 και σε ένα αρχικά άδειο AVL δέντρο με κόκκινο χρώμα σημειώνονται οι κρίσιμοι κόμβοι +4 +9 + 1 1 1

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

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 2. Πίνακες 45 23 28 95 71 19 30 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 21/10/2016

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

Διασυνδεδεμένες Δομές. Δυαδικά Δέντρα. Προγραμματισμός II 1

Διασυνδεδεμένες Δομές. Δυαδικά Δέντρα. Προγραμματισμός II 1 Διασυνδεδεμένες Δομές Δυαδικά Δέντρα Προγραμματισμός II 1 lalis@inf.uth.gr Δέντρα Τα δέντρα είναι κλασικές αναδρομικές δομές Ένα δέντρο αποτελείται από υποδέντρα, καθένα από τα οποία μπορεί να θεωρηθεί

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

Ψευδοκώδικας. November 7, 2011

Ψευδοκώδικας. November 7, 2011 Ψευδοκώδικας November 7, 2011 Οι γλώσσες τύπου ψευδοκώδικα είναι ένας τρόπος περιγραφής αλγορίθμων. Δεν υπάρχει κανένας τυπικός ορισμός της έννοιας του ψευδοκώδικα όμως είναι κοινός τόπος ότι οποιαδήποτε

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

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

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

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

ΗΥ240: Δομές Δεδομένων Χειμερινό Εξάμηνο Ακαδημαϊκό Έτος Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2o Μέρος

ΗΥ240: Δομές Δεδομένων Χειμερινό Εξάμηνο Ακαδημαϊκό Έτος Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2o Μέρος ΗΥ240: Δομές Δεδομένων Χειμερινό Εξάμηνο Ακαδημαϊκό Έτος 2018-2019 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2o Μέρος Ημερομηνία Παράδοσης: Παρασκευή, 21 Δεκεμβρίου 2018, ώρα 23:59 Τρόπος

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

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Άσκηση 1 α) Η δομή σταθμισμένης ένωσης με συμπίεση διαδρομής μπορεί να τροποποιηθεί πολύ εύκολα ώστε να υποστηρίζει τις

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

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Δομημένος Προγραμματισμός Ενότητα 5(γ): Εργαστηριακή Άσκηση Αναπλ. Καθηγητής: Κωνσταντίνος Στεργίου Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

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

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

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

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

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

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

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

ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ

ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ Δομές Δεδομένων Παπαγιαννόπουλος Δημήτριος 30 Μαρτίου 2017 18 Μαΐου 2017 papagianno@ceid.upatras.gr 1 Περιεχόμενα Ουρές προτεραιότητας Πράξεις Διωνυμικές Ουρές Διωνυμικά Δέντρα Διωνυμικοί

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

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 1 η

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 1 η Δ.Π.Θ. - Πολυτεχνική Σχολή Τμήμα Μηχανικών Παραγωγής & Διοίκησης Ακαδ. έτος 2016-2017 Τομέας Συστημάτων Παραγωγής Εξάμηνο Β Αναπληρωτής Καθηγητής Στέφανος Δ. Κατσαβούνης ΜΑΘΗΜΑ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 2. Πίνακες 45 23 28 95 71 19 30 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 12/10/2017

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

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

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

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

Παράδειγμα 2. Λύση & Επεξηγήσεις. Τέλος_επανάληψης Εμφάνισε "Ναι" Τέλος Α2

Παράδειγμα 2. Λύση & Επεξηγήσεις. Τέλος_επανάληψης Εμφάνισε Ναι Τέλος Α2 Διδακτική πρόταση ΕΝΟΤΗΤΑ 2η, Θέματα Θεωρητικής Επιστήμης των Υπολογιστών Κεφάλαιο 2.2. Παράγραφος 2.2.7.4 Εντολές Όσο επανάλαβε και Μέχρις_ότου Η διαπραγμάτευση των εντολών επανάληψης είναι σημαντικό

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

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

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

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