Αλγόριθµοι + οµές εδοµένων = Προγράµµατα

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

Download "Αλγόριθµοι + οµές εδοµένων = Προγράµµατα"

Transcript

1 2 ΟΜΕΣ Ε ΟΜΕΝΩΝ 2.1 ΕΙΣΑΓΩΓΗ Εκτός από τους αλγορίθµους, σηµαντική έννοια για την Πληροφορική είναι και η έννοια των δεδοµένων. Τα δεδοµένα αποθηκεύονται στον υπολογιστή µε τη βοήθεια των λεγόµενων δοµών δεδοµένων. Θεωρώντας τους αλγόριθµους και τις δοµές δεδοµένων µια αδιάσπαστη ενότητα µπορεί να λεχθεί, ότι η ενότητα αυτή τελικά αποτελεί τη βάση ενός προγράµµατος που επιλύει ένα πρόβληµα. Αλγόριθµοι + οµές εδοµένων = Προγράµµατα Τα δεδοµένα ενός προβλήµατος αποθηκεύονται στον Η/Υ, είτε στην κύρια ή στη δευτερεύουσα µνήµη του. Η αποθήκευση αυτή δε γίνεται κατά ένα τυχαίο τρόπο αλλά συστηµατικά, δηλαδή χρησιµοποιώντας µία δοµή. Η έννοια της δοµής δεδοµένων (data structure) είναι σηµαντική για την Πληροφορική και ορίζεται µε τον ακόλουθο τυπικό ορισµό: οµή εδοµένων είναι ένα σύνολο αποθηκευµένων δεδοµένων που υφίστανται επεξεργασία από ένα σύνολο λειτουργιών Κάθε µορφή δοµής δεδοµένων αποτελείται από ένα σύνολο κόµβων (nodes). Οι βασικές λειτουργίες επί των δοµών δεδοµένων είναι οι ακόλουθες: Προσπέλαση (access) πρόσβαση σε ένα κόµβο µε σκοπό να εξετασθεί ή να τροποποιηθεί το περιεχόµενό του Εισαγωγή (insertion) η προσθήκη νέων κόµβων σε µία υπάρχουσα δοµή ιαγραφή (deletion) η αφαίρεση ενός κόµβου από µία υπάρχουσα δοµή Αναζήτηση (searching) γίνεται προσπέλαση των κόµβων µίας δοµής, προκειµένου να εντοπισθούν ένας ή περισσότεροι που έχουν µία δεδοµένη ιδιότητα Ταξινόµηση (sorting) οι κόµβοι µίας δοµής τοποθετούνται σε αύξουσα ή φθίνουσα σειρά Αντιγραφή (copying) όλοι οι κόµβοι ή µερικοί από τους κόµβους µίας δοµής αντιγράφονται σε µία άλλη δοµή Συγχώνευση (merging) δύο ή περισσότερες δοµές συνενώνονται σε µία ενιαία δοµή ιαχωρισµός (separation) αποτελεί την αντίστροφη πράξη της συγχώνευσης Στην πράξη σπάνια χρησιµοποιούνται όλες οι λειτουργίες για κάποια δοµή. Παρατηρείται συχνά το φαινόµενο µία δοµή δεδοµένων να είναι οµές εδοµένων 33

2 αποδοτικότερη από µία άλλη δοµή µε κριτήριο κάποια λειτουργία, για παράδειγµα την αναζήτηση, αλλά λιγότερο αποδοτική για κάποια άλλη λειτουργία, για παράδειγµα την εισαγωγή. Αυτές οι παρατηρήσεις εξηγούν αφ ενός την ύπαρξη διαφορετικών δοµών, και αφ ετέρου τη σπουδαιότητα της επιλογής της κατάλληλης δοµής κάθε φορά. 2.2 ΠΙΝΑΚΕΣ Ορισµός Με τον όρο στατική δοµή δεδοµένων εννοείται ότι το ακριβές µέγεθος της απαιτούµενης κύριας µνήµης καθορίζεται κατά τη στιγµή του προγραµµατισµού τους, και κατά συνέπεια κατά τη στιγµή της µετάφρασης του προγράµµατος και όχι κατά τη στιγµή της εκτέλεσής του. Μία άλλη σηµαντική διαφορά σε σχέση µε τις δυναµικές δοµές που θα περιγραφούν παρακάτω είναι ότι τα στοιχεία των στατικών δοµών αποθηκεύονται σε συνεχόµενες θέσεις µνήµης. Στην πράξη, οι στατικές δοµές υλοποιούνται µε πίνακες που µας είναι γνωστοί από άλλα µαθήµατα και υποστηρίζονται από κάθε γλώσσα προγραµµατισµού. Μπορούµε να ορίσουµε τον πίνακα ως µια δοµή που περιέχει στοιχεία του ίδιου τύπου (δηλαδή ακέραιους, πραγµατικούς κλπ.). Η δήλωση των στοιχείων ενός πίνακα και η µέθοδος αναφοράς τους εξαρτάται από τη συγκεκριµένη γλώσσα υψηλού επιπέδου που χρησιµοποιείται. Όµως γενικά η αναφορά στα στοιχεία ενός πίνακα γίνεται µε τη χρήση του συµβολικού ονόµατος του πίνακα ακολουθούµενου από την τιµή ενός ή περισσοτέρων δεικτών (indexes) σε παρένθεση ή αγκύλη. Ένας πίνακας µπορεί να είναι µονοδιάστατος, αλλά γενικά µπορεί να είναι δυσδιάστατος, τρισδιάστατος και γενικά ν-διάστατος πίνακας Παραδείγµατα Αλγορίθµων µε Πίνακες Παράδειγµα 1: Εύρεση του ελάχιστου στοιχείου ενός µονοδιάστατου πίνακα. Αλγόριθµος Ελάχιστο_πίνακα εδοµένα table[n], i, min min = table[1] Για i από 2 µέχρι n Aν table[i] < n τότε min = table[i] Τέλος επανάληψης Εµφάνισε min Τέλος Ελάχιστο_Πίνακα οµές εδοµένων 34

3 Παράδειγµα 2: Εύρεση αθροίσµατος στοιχείων δυσδιάστατου πίνακα. Αλγόριθµος Άθροισµα_στοιχείων_Πίνακα εδοµένα table[m][n], i, j, sum, row[m], col[n] Για i από 1 µέχρι m Για j από 1 µέχρι n ιάβασε table[i][j] Τέλος επανάληψης Τέλος επανάληψης sum = 0; Για i από 1 µέχρι m row[i] = 0 Τέλος επανάληψης Για j από 1 µέχρι n col[j] = 0 Τέλος επανάληψης Για i από 1 µέχρι m Για j από 1 µέχρι n sum = sum + table[i][j] row[i] = row[i] + table[i][j] colo[j] = col[j] + table[i][j] Τέλος επανάληψης Τέλος επανάληψης Εµφάνισε sum Για i από 1 µέχρι m Εµφάνισε row[i] Tέλος επανάληψης Για j από 1 µέχρι n Εµφάνισε col[i] Tέλος επανάληψης Τέλος Άθροισµα_στοιχείων_Πίνακα table row col sum οµές εδοµένων 35

4 2.2.3 Αποθήκευση πινάκων Ένας µονοδιάστατος πίνακας p[n] απαιτεί Ν συνεχόµενες θέσεις µνήµης για να αποθηκευτεί. Η αρχική θέση του πίνακα στη µνήµη του Η/Υ θα αναφέρεται µε το συµβολισµό loc(p[lowerbound]), όπου το lowerbound είναι το κάτω όριο του πίνακα πχ. 0. Η θέση του i-οστού στοιχείου του πίνακα p εκφράζεται ως loc(p[i]) = loc(p[lowerbound]) + i lowerbound Θεωρούµε ότι κάθε στοιχείο του πίνακα καταλαµβάνει µία λέξη της κύριας µνήµης του Η/Υ. Οι δύο πιο συνηθισµένοι τρόποι αποθήκευσης ενός δυσδιάστατου πίνακα p[m][n] είναι η: ιάταξη κατά γραµµές (row-major order) ιάταξη κατά στήλες (column-major order) Στην πρώτη µέθοδο φυλάγεται πρώτα η πρώτη γραµµή, ακολουθούµενη από τη δεύτερη γραµµή και τελευταία αποθηκεύεται η m-οστή γραµµή. Στη δεύτερη µέθοδο φυλάγεται πρώτα η πρώτη στήλη, ακολουθούµενη από τη δεύτερη στήλη και τελευταία αποθηκεύεται η n-οστή στήλη. Αν ο πίνακας έχει φυλαχτεί κατά στήλες τότε η θέση του στοιχείου p[i][j] είναι: loc(p[i][j]) = loc(p[0][0]) + i + M*j Ειδικές Μορφές Πινάκων Αν ο πίνακας έχει κάποια ειδική µορφή τότε είναι δυνατόν να χρησιµοποιηθεί κάποια ιδιαίτερη τεχνική για την ελάττωση του χώρου φύλαξής του. Αυτό γίνεται µε την ευθύνη του προγραµµατιστή που πρέπει να λάβει υπόψη του τον τρόπο φύλαξης του πίνακα. Τέτοιες µορφές πινάκων είναι οι ακόλουθες: Συµµετρικοί πίνακες (symmetric) όπου τα στοιχεία είναι συµµετρικά ως προς την κύρια διαγώνιο. Εδώ απαιτούνται n(n+1)/2 θέσεις µνήµης. Τριγωνικοί πίνακες (triangular) όπου τα στοιχεία πάνω ή κάτω της κύριας διαγωνίου είναι 0. Εδώ επίσης απαιτούνται n(n+1)/2 θέσεις µνήµης Τριδιαγώνιοι πίνακες (tridiagonal) όπου όλα τα στοιχεία πλην της κύριας διαγωνίου και των δύο διπλανών διαγωνίων είναι 0. Εδώ απαιτούνται 3*n-2 θέσεις µνήµης Αραιοί πίνακες (sparse) οµές εδοµένων 36

5 όπου ένα µεγάλο ποσοστό των στοιχείων του πίνακα έχουν την τιµή 0 (συνήθως > 80%). Υπάρχουν πολλοί τρόποι για την αποδοτική από πλευράς χώρου αποθήκευση αραιών πινάκων. Π.χ. ένας τρόπος είναι να αποθηκεύεται κάθε µη µηδενικό στοιχεί του πίνακα ως µία τριάδα αριθµών. Οι δύο πρώτοι αριθµοί δείχνουν τη θέση του στοιχείου στον πίνακα και ο τρίτος αριθµός την τιµή του στοιχείου. έτσι αν υπάρχουν n µη µηδενικά στοιχεία απαιτούνται 3*n θέσεις µνήµης. 2.3 ΓΡΑΜΜΙΚΕΣ ΛΙΣΤΕΣ Ορισµός Γραµµική λίστα (linear list) είναι ένα πεπερασµένο σύνολο από κόµβους x 1, x 2,..., x n όπου το στοιχείο x k προηγείται του στοιχείου x k+1 και έπεται του x k-1. Κατατάσσονται συνήθως σε δύο κατηγορίες: Σειριακές γραµµικές λίστες (sequential linear lists) Συνδεδεµένες γραµµικές λίστες (linked linear lists) Στην πρώτη κατηγορία καταλαµβάνονται συνεχόµενες θέσεις µνήµης του Η/Υ για την αποθήκευση των κόµβων. Στη δεύτερη κατηγορία οι κόµβοι των λιστών βρίσκονται σε αποµακρυσµένες θέσεις που είναι µεταξύ τους συνδεδεµένες. Επίσης, οι γραµµικές λίστες χαρακτηρίζονται σα: Στατικές δοµές δεδοµένων (static data structures) υναµικές δοµές δεδοµένων (dynamic data structures) Στην πρώτη κατηγορία, κατά τον προγραµµατισµό των λειτουργιών των λιστών, έχει προκαθορισθεί το µέγεθος της µνήµης που απαιτείται για την αποθήκευση των λιστών. Στη δεύτερη κατηγορία, µία λίστα µπορεί να αυξοµειωθεί κατά την διάρκεια εκτέλεσης του προγράµµατος Σειριακές Λίστες Στοίβα (stack) Μπορούµε να την παραλληλίσουµε σαν µία στοίβα από πιάτα. Κάθε νέο στοιχείο τοποθετείται στην κορυφή (top). Το στοιχείο που βρίσκεται στην κορυφή της στοίβας εξέρχεται πρώτο. Αυτή η µέθοδος επεξεργασίας ονοµάζεται: LIFO (Last In First Out) οµές εδοµένων 37

6 4 3 top Μία στατική στοίβα υλοποιείται µε τη χρήση ενός µονοδιάστατου πίνακα και ενός δείκτη. ύο είναι οι κύριες λειτουργίες στη στοίβα: Ώθηση (push) στοιχείου στην κορυφή της στοίβας Απώθηση (pop) στοιχείου από τη στοίβα Η διαδικασία της ώθησης πρέπει οπωσδήποτε να ελέγχει µήπως η στοίβα είναι γεµάτη, οπότε έχουµε υπερχείλιση (overflow). Αντίστοιχα, η διαδικασία της απώθησης πρέπει να ελέγχει αν η στοίβα έχει αδειάσει, οπότε έχουµε υποχείλιση (underflow) Ουρά (queue) Την έννοια της ουράς την συναντάµε συχνά στην καθηµερινή µας ζωή, π.χ. ουρά αναµονής µε ανθρώπους. Το άτοµο που είναι πρώτο στην ουρά, εξυπηρετείται και εξέρχεται. Το άτοµο που µόλις καταφθάνει, τοποθετείται στο τέλος της ουράς. Η µέθοδος αυτή επεξεργασίας ονοµάζεται: FIFO (First In First Out) ύο είναι οι βασικές λειτουργίες στην ουρά: Εισαγωγή (enqueue) στοιχείου στο πίσω άκρο της ουράς Εξαγωγή (dequeue) στοιχείου από το εµπρός άκρο της ουράς Εποµένως, για την υλοποίηση της ουράς χρειάζονται ένας πίνακας και δύο δείκτες, ο εµπρός (front) και ο πίσω (rear). Επειδή βολεύει προγραµµατιστικά ο δείκτης rear δείχνει πάντα στο τελευταίο στοιχείο, ενώ ο δείκτης front δείχνει µία θέση πριν το πρώτο στοιχείο και, κατά συνέπεια, η ισότητα των δύο δεικτών αποδεικνύει ότι η ουρά είναι άδεια front rear Η υλοποίηση της ουράς µε πίνακα έχει ένα µειονέκτηµα. Υπάρχει περίπτωση ο rear να φθάσει στο πάνω όριο του πίνακα, αλλά στην ουσία να µην υπάρχει υπερχείλιση (επειδή ο front θα έχει αυξηθεί). οµές εδοµένων 38

7 π.χ front rear Στην πραγµατικότητα υπάρχει ελεύθερος χώρος για την εισαγωγή και νέων στοιχείων. Μία λύση θα ήταν να µεταφερθούν τα στοιχεία στο αριστερό άκρο του πίνακα. π.χ front rear Μία πιο αποτελεσµατική υλοποίηση θα ήταν η ουρά να αναδιπλώνεται, δηλαδή όταν ο rear = N-1, να επανατοποθετείται στο 0. Η δοµή αυτή ονοµάζεται κυκλική ουρά (circular queue) rear front Συνδεδεµένες Λίστες Οι στατικές δοµές που µελετήθηκαν, παρουσιάζουν προβλήµατα στην εισαγωγή και διαγραφή κόµβων και στην αποδοτική εκµετάλλευση της διαθέσιµης µνήµης. Κύριο χαρακτηριστικό των συνδεδεµένων λιστών είναι ότι οι κόµβοι τους βρίσκονται σε αποµακρυσµένες θέσεις µνήµης και η σύνδεσή τους γίνεται µε δείκτες. Κατ αυτό τον τρόπο, η εισαγωγή και διαγραφή κόµβων γίνεται πολύ πιο απλά. Ένα άλλο θετικό χαρακτηριστικό είναι ότι, δεν απαιτείται εκ των προτέρων καθορισµός του µέγιστου αριθµού κόµβων της λίστας και µπορεί η λίστα να επεκταθεί ή να συρρικνωθεί κατά την εκτέλεση του προγράµµατος (δυναµικές δοµές). head NULL Κάθε κόµβος της λίστας υλοποιείται µε µία δοµή (structure) µε δύο στοιχεία. Το ένα µέλος (data) περιέχει τα δεδοµένα (οποιουδήποτε τύπου) του κόµβου και το άλλο µέλος (next) είναι δείκτης προς τον επόµενο κόµβο. Τοποθετείται ένας δείκτης (head) στον πρώτο κόµβο για να προσπελάζεται η λίστα, ενώ ο δείκτης του τελευταίου κόµβου δείχνει στο NULL για να εντοπίζεται το τέλος της λίστας. οµές εδοµένων 39

8 Στοίβα ως Συνδεδεµένη Λίστα Η στοίβα υλοποιείται µε έναν δείκτη top που αρχικοποιείται στο NULL, και δείχνει ότι η στοίβα είναι άδεια. Η λειτουργία push δεν ελέγχει για υπερχείλιση γιατί θεωρητικά η στοίβα µπορεί να έχει όσους κόµβους θέλουµε (αφού δηµιουργείται δυναµικά). Επίσης, η λειτουργία pop, µε τη βοήθεια της εντολής free επιστρέφει στη διαθέσιµη µνήµη του Η/Υ το χώρο που καταλαµβάνονταν από τον κόµβο που διαγράφηκε. top NULL Ουρά ως Συνδεδεµένη Λίστα Η ουρά υλοποιείται µε τη χρήση δύο δεικτών front και rear που αρχικοποιούνται στην τιµή NULL. Η άδεια ουρά εκφράζεται µε front = NULL. Όπως και στην περίπτωση της στοίβας, δεν χρειάζεται να γίνεται έλεγχος υπερχείλισης από τη στιγµή που η ουρά αυξάνεται δυναµικά front NULL rear 2.4 ΕΝΤΡΑ Οι δοµές που εξετάστηκαν στις προηγούµενες παραγράφους, είχαν σαν κοινό χαρακτηριστικό τη γραµµικότητα µεταξύ των κόµβων τους. Στο κεφάλαιο αυτό θα εξετάσουµε την πιο ενδιαφέρουσα µη-γραµµική δοµή, το δένδρο (tree) Ορισµοί Ένα δένδρο Τ είναι ένα πεπερασµένο σύνολο από κόµβους και ακµές. Ο πρώτος κόµβος του δένδρου ονοµάζεται ρίζα (root), ενώ οι υπόλοιποι κόµβοι απαρτίζουν άλλα υποσύνολα που µε τη σειρά τους είναι δένδρα και ονοµάζονται υποδένδρα (subtrees). οµές εδοµένων 40

9 Ο ορισµός αυτός είναι αναδροµικός γιατί µπορεί να θεωρηθεί ότι κάθε κόµβος του δένδρου είναι ρίζα σε κάποιο υποδένδρο. A B C D E F Για παράδειγµα: T = (A, B, C, D, E, F, G) ρίζα = Α T1 = (B) T2 = (C, D, E, F, G) G Ως ακµή καλείται η κατευθυνόµενη σύνδεση µεταξύ δύο κόµβων (πχ. ΑΒ, ΑC, κλπ.). Μια λίστα διακριτών κόµβων που συνδέονται µε ακµές καλείται µονοπάτι. (πχ. AB, ΑCE κλπ). Οι κόµβοι ενός δένδρου από τους οποίους δεν αρχίζει κάποιο υποδένδρο λέγονται φύλλα (leaves) ή τερµατικοί κόµβοι (terminal nodes). Βαθµός του κόµβου (node degree) είναι ο αριθµός των υποδένδρων που αρχίζουν από ένα κόµβο. Για παράδειγµα: Ο κόµβος Α έχει βαθµό 2. Ο κόµβος C έχει βαθµό 3. Βαθµός του δένδρου (tree degree) είναι ο µέγιστος βαθµός από όλους τους βαθµούς κόµβων. Η ρίζα ενός δένδρου ονοµάζεται πατέρας (father) των ριζών των υποδένδρων και οι ρίζες των υποδένδρων ονοµάζονται παιδιά (children) της ρίζας. Οι κόµβοι που έχουν τον ίδιο πατέρα ονοµάζονται αδελφοί (brothers). Ένας κόµβος y που βρίσκεται σε κατώτερο επίπεδο από ένα κόµβο x λέγεται απόγονος (descendant) του κόµβου x. Αντίστροφα, ο κόµβος x ονοµάζεται πρόγονος (ancestor) του κόµβου y. Η ρίζα του δένδρου βρίσκεται πάντοτε στο επίπεδο 1. Το µέγιστο επίπεδο όλων των κόµβων ενός δένδρου λέγεται βάθος (depth) ή ύψος (height) του δένδρου. άσος (forest) είναι ένα σύνολο από περισσότερα του ενός δένδρα που είναι ξένα µεταξύ τους. οµές εδοµένων 41

10 Τα δένδρα που χρησιµοποιούνται περισσότερο στην πράξη είναι τα δυαδικά δένδρα (binary trees), µε βαθµό 2. Τα παιδιά κάθε κόµβου σε ένα δυαδικό δένδρο καλούνται αριστερό και δεξιό παιδί. Όταν έχει σηµασία η διάταξη των κλαδιών ενός δένδρου, τότε αυτό λέγεται διατεταγµένο (ordered). Μία ενδιαφέρουσα µορφή διατεταγµένου δένδρου είναι το δυαδικό δένδρο αναζήτησης (binary search tree). Ένα δυαδικό δένδρο αναζήτησης είναι οργανωµένο έτσι ώστε για κάθε κόµβο, η τιµή του δεξιού του παιδιού είναι µεγαλύτερη από την τιµή αυτού και η τιµή του αριστερού του παιδιού είναι µικρότερη ή ίση από την τιµή αυτού: A D B E A C F Ένα δυαδικό δένδρο λέγεται ισορροπηµένο κατά ύψος (height balanced tree) αν το ύψος του αριστερού και του δεξιού υποδένδρου κάθε κόµβου διαφέρει το πολύ κατά ένα. Ένα δυαδικό δένδρο λέγεται τέλεια ισορροπηµένο (perfectly balanced tree) αν το πλήθος των κόµβων του αριστερού και του δεξιού υποδένδρου κάθε κόµβου διαφέρει το πολύ κατά ένα Επεξεργασίες σε ένδρα Ενδιαφέρον εντοπίζεται στη µέθοδο µε την οποία πραγµατοποιείται η διάσχιση (traversal) ενός δένδρου, η επίσκεψη δηλ. όλων των κόµβων του µία φορά. ιακρίνονται τρεις περιπτώσεις: α) Προδιατεταγµένη (preorder) µέθοδος β) Ενδοδιατεταγµένη (inorderl) µέθοδος γ) Μεταδιατεταγµένη (postorder) µέθοδος Παράδειγµα: A D B E A C F οµές εδοµένων 42

11 Προδιατεταγµένη: 1. Επίσκεψη της ρίζας 2. Επίσκεψη του αριστερού υποδένδρου 3. Επίσκεψη του δεξιού υποδένδρου (Ο αλγόριθµος είναι αναδροµικός) Αποτελέσµατα: D, B, A, C, E, F Λεπτοµερής ανάλυση: 1. Ρίζα (D) 1 2. Αριστερά (B, A, C) => 1. Ρίζα (B) 2 3. εξιά (E, F) 2. Αριστερά (A) => 1. Ρίζα (A) 3 3. εξιά (C) 2. Αριστερά (άδειο) 1. Ρίζα (E) 5 3. εξιά (άδειο) 2. Αριστερά (άδειο) 1. Ρίζα (C) 4 3. εξιά (F) 2. Αριστερά (άδειο) 3. εξιά (άδειο) 1. Ρίζα (F) 6 2. Αριστερά (άδειο) 3. εξιά (άδειο) Ενδοδιατεταγµένη 1. Επίσκεψη του αριστερού υποδένδρου 2. Επίσκεψη της ρίζας 3. Επίσκεψη του δεξιού υποδένδρου (Ο αλγόριθµος είναι αναδροµικός) Αποτελέσµατα: A, B, C, D, E, F Μεταδιατεταγµένη 1. Επίσκεψη του αριστερού υποδένδρου 2. Επίσκεψη του δεξιού υποδένδρου 3. Επίσκεψη της ρίζας (Ο αλγόριθµος είναι αναδροµικός) Αποτελέσµατα: A, C, B, F, E, D οµές εδοµένων 43

12 Η διαδικασία της διαγραφής είναι πιο σύνθετη από τη διαδικασία της εισαγωγής. Αν ο κόµβος είναι τερµατικός, τότε είναι εύκολο. Επίσης εύκολη είναι η περίπτωση που ο διαγραφόµενος κόµβος έχει µόνον ένα απόγονο. ύσκολη είναι η περίπτωση που ο κόµβος έχει δύο απογόνους. Σ αυτή την περίπτωση ο κόµβος πρέπει να αντικατασταθεί είτε από τον πιο δεξιό κόµβο του αριστερού υποδένδρου, ή από τον πιο αριστερό κόµβο του δεξιού υποδένδρου. Προφανώς οι δύο αυτοί υποψήφιοι έχουν το πολύ έναν απόγονο. Παράδειγµα: ιαγραφή του κόµβου ος τρόπος Θα αντικατασταθεί µε τον πιό δεξιό κόµβο του αριστερού υποδένδρου, δηλ. το οµές εδοµένων 44

13 2 ος τρόπος ΕΦΑΡΜΟΣΜΕΝΗ ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Θα αντικατασταθεί µε τον πιό αριστερό κόµβο του δεξιού υποδένδρου, δηλ. το ΓΡΑΦΟΙ Οι Γράφοι αποτελούν την πιο γενική µορφή δοµής δεδοµένων. Θα µπορούσαµε να θεωρήσουµε τις δοµές που εξετάστηκαν ως τώρα ως υποπεριπτώσεις των γράφων. Η θεωρία των γράφων (graph theory) αποτελεί σπουδαίο αντικείµενο µελέτης και έρευνας και συνήθως διδάσκεται ως ανεξάρτητο µάθηµα σε αρκετές επιστήµες (Μαθηµατικά, Πληροφορική, Φυσική, κλπ.). Στην Επιστήµη των Υπολογιστών οι γράφοι χρησιµοποιούνται για την µελέτη των Γλωσσών Προγραµµατισµού, Λειτουργικών Συστηµάτων, Βάσεων εδοµένων, ικτύων, κλπ. Επίσης, οι γράφοι χρησιµοποιούνται για την επίλυση πρακτικών προβληµάτων ποικίλων επιστηµονικών περιοχών όπως Ανθρωπολογία, Γεωγραφία, Οικονοµικά, κλπ. Στην επιστήµη της Γεωπληροφορικής εντοπίζονται αλγόριθµοι έντονου ενδιαφέροντος που βασίζονται στη δοµή των γράφων και αφορούν υπολογισµούς όπως βέλτιστες διαδροµές στο χώρο, χρωµατισµό πολυγώνων σε χάρτες κλπ. Στο κεφάλαιο αυτό θα παρουσιασθούν κάποιες ενδιαφέρουσες τεχνικές για την υλοποίηση και την επεξεργασία της δοµής του γράφου Ορισµοί Ένας γράφος G χαρακτηρίζεται από δύο σύνολα V και E. Το σύνολο V είναι ένα πεπερασµένο διάφορο του κενού σύνολο που περιέχει ως στοιχεία τις οµές εδοµένων 45

14 κορυφές (vertices) του γράφου. Το σύνολο E έχει ως στοιχεία τα ζευγάρια κορυφών του γράφου που ορίζουν τις ακµές (edges). Τα σύµβολα V(G), E(G) και G(V,E) χρησιµοποιούνται αντίστοιχα για την αναπαράσταση των συνόλων V, E και του γράφου G. Π.χ G1 G2 G3 Ένας γράφος ονοµάζεται µη-κατευθυνόµενος (undirected) όταν τα ζευγάρια των κορυφών που ορίζουν τις ακµές δεν είναι διατεταγµένα. ηλαδή, τα ζευγάρια (v 1,v 2 ) και (v 2,v 1 ) ορίζουν την ίδια ακµή. Οι γράφοι G1, G2 του προηγούµενου σχήµατος είναι µηκατευθυνόµενοι. Ένας γράφος ονοµάζεται κατευθυνόµενος (directed graph) όταν κάθε ακµή του ορίζεται από ένα διατεταγµένο ζευγάρι κορυφών. Συµβολίζουµε το ζευγάρι αυτό <v 1,v 2 > και θεωρούµε την κατεύθυνση από την κορυφή v 1, που ονοµάζεται ουρά (tail), προς την v 2, που ονοµάζεται κεφαλή (head). Ο γράφος G 3 του σχήµατος είναι κατευθυνόµενος. Τα σύνολα V των γράφων G 1, G 2, G 3 είναι: V(G 1 ) = (1,2,3,4) V(G 2 ) = (1,2,3,4,5,6,7) V(G 3 ) = (1,2,3) Τα σύνολα E ορίζονται ως εξής: E(G 1 ) = ( (1,2), (1,3), (1,4), (2,3), (2,4), (3,4) ) E(G 2 ) = ( (1,2), (1,3), (2,4), (2,5), (3,6), (3,7) ) E(G 3 ) = ( <1,2>, <2,1>, <2,3> ) Ένας µη-κατευθυνόµενος γράφος µε n κορυφές λέγεται πλήρης n( n 1) (complete) αν έχει ακριβώς ακµές. 2 π.χ ο γράφος G 1 του σχήµατος είναι πλήρης. Αν (v 1,v 2 ) είναι µία ακµή του συνόλου E(G), τότε οι κορυφές v 1 και v 2 λέγονται διπλανές (adjacent). H ακµή (v 1,v 2) ονοµάζεται οµές εδοµένων 46

15 στιγµιότυπο (incident) των κορυφών v 1 και v 2 και αν δύο κορυφές v 1 και v 2 δεν συνδέονται µεταξύ τους ονοµάζονται ανεξάρτητες (independent) Μονοπάτι (path) από µία κορυφή v m προς µία άλλη κορυφή v n ορίζεται η λίστα των διαδοχικών κορυφών [v m,...,v n ] που συνδέονται µε ακµές που ανήκουν στο E(G). Για παράδειγµα, το [1,2,3,4] είναι ένα µονοπάτι από την κορυφή 1 στην κορυφή 4 στο γράφο G 1 του σχήµατος. Μήκος (length) µονοπατιού είναι ο αριθµός των ακµών που υπάρχουν στο µονοπάτι. Στο προηγούµενο παράδειγµα το µήκος του µονοπατιού είναι 3. Ένα µονοπάτι ονοµάζεται απλό (simple) όταν καµία κορυφή δεν εµφανίζεται παραπάνω από µία φορά σ αυτό. Π.χ. Το [1,2,3,4] είναι απλό µονοπάτι, ενώ το [1,2,4,2] δεν είναι. Το [1,2,3,2] δεν είναι µονοπάτι του G 3 γιατί η ακµή <3,2> δεν ανήκει στο E(G 3 ). Κύκλος (cycle) είναι ένα απλό µονοπάτι όπου ταυτίζεται η πρώτη και η τελευταία κορυφή. Π.χ. το µονοπάτι [1,2,3,1] του G 1 είναι κύκλος. Απ αυτό συµπεραίνουµε ότι ένα δένδρο είναι ένας γράφος που δεν έχει καθόλου κύκλους. Βαθµός (degree) κορυφής λέγεται ο αριθµός των ακµών που είναι στιγµιότυπα της κορυφής Μέθοδοι Αναπαράστασης Γράφων Υπάρχουν αρκετοί τρόποι απεικόνισης ενός γράφου στην κύρια µνήµη του Η/Υ. Η αποδοτικότητα κάθε αναπαράστασης εξαρτάται από τις συγκεκριµένες λειτουργίες που εκτελούνται στο γράφο. Στη συνέχεια θα περιγραφούν δύο από τις βασικότερες µέθοδοι αναπαράστασης. Η πρώτη µέθοδος αφορά στην αναπαράσταση του γράφου µε τη χρήση µιας στατικής δοµής δεδοµένων, ενώ η δεύτερη µε τη χρήση µιας δυναµικής δοµής. Πίνακες διπλανών κορυφών (adjacency matrices) Λίστες διπλανών κορυφών (adjacency lists) Αναπαράσταση γράφου µε Πίνακα ιπλανών Κορυφών Ένας γράφος G µε n κορυφές µπορεί να αναπαρασταθεί µε τη βοήθεια ενός δισδιάστατου πίνακα N*N. To στοιχείο (i, j) του πίνακα παίρνει την τιµή 1 αν η ακµή (v i, v j ) ανήκει στο E(G), αλλιώς παίρνει την τιµή 0. Για οµές εδοµένων 47

16 παράδειγµα, οι πίνακες διπλανών κορυφών για τους γράφους G1, G3 του προαναφερθέντος σχήµατος είναι: G 1 G 3 Παρατηρήσεις: Οι n κορυφές ενός γράφου πιθανώς να αναφέρονται µε γράµµατα a, b, c, κλπ. ή αριθµούς 1, 2, 3, κλπ. Σ αυτή την περίπτωση πρέπει να ορίσουµε αντιστοιχία των ονοµάτων αυτών µε τους δείκτες 0, 1, 2,..., n-1 του πίνακα. Βασικό πλεονέκτηµα της αναπαράστασης ενός γράφου µε τη βοήθεια πίνακα διπλανών κορυφών αποτελεί η ταχύτατη διαπίστωση αν δύο κορυφές αποτελούν ακµή ή όχι. Βασικό µειονέκτηµα της χρήσης του πίνακα είναι η σπατάλη µνήµης, καθώς στην ουσία χρειαζόµαστε µόνον τις θέσεις του πίνακα που δηλώνουν ακµές (µε τιµή 1) και όχι αυτές που δεν δηλώνουν ακµές (τιµή 0) Αναπαράσταση γράφου µε Λίστες ιπλανών Κορυφών Σ αυτή την αναπαράσταση του γράφου που αποτελείται από n κορυφές, ορίζεται ένας πίνακας n θέσεων τα στοιχεία του οποίου είναι συνδεδεµένες λίστες. Κάθε κόµβος της λίστας στη θέση i του πίνακα αναπαριστά κορυφή του γράφου, η οποία συνδέεται µε την κορυφή i. οµές εδοµένων 48

17 π.χ NULL NULL NULL NULL 1 2 NULL NULL 3 NULL Μέθοδοι ιάσχισης Γράφων Τα προβλήµατα που συνήθως αντιµετωπίζουµε στους γράφους, καταλήγουν σε αλγορίθµους που σχετίζονται µε την εύρεση ενός µονοπατιού, το οποίο να συνδέει µία αρχική κορυφή (κόµβος εκκίνησης) µε µία τελική κορυφή (κόµβος άφιξης). Το µονοπάτι αυτό, ανάλογα µε τη φύση του προβλήµατος, απαιτούµε να έχει διάφορες ιδιότητες. Έτσι, για παράδειγµα, σ ένα γράφο που αναπαριστά πόλεις, οι οποίες συνδέονται οδικά µεταξύ τους, µπορεί να αναζητούµε το µονοπάτι εκείνο που περνά από όσο το δυνατόν περισσότερες πόλεις ή να αναζητούµε το µονοπάτι εκείνο που συνδέει δύο πόλεις µε τη µικρότερη χιλιοµετρική απόσταση κλπ. Από τους βασικότερους αλγόριθµους γράφων είναι αυτοί που µας διασφαλίζουν τρόπους επίσκεψης όλων των κορυφών ενός γράφου. Στη συνέχεια θα περιγραφούν δύο τέτοιες µέθοδοι διάσχισης γράφων: Αναζήτηση µε προτεραιότητα βάθους (depth first search) Αναζήτηση µε προτεραιότητα πλάτους (breadth first search) οµές εδοµένων 49

18 Αναζήτηση µε Προτεραιότητα Βάθους Υλοποιείται µε τη χρήση στοίβας A ΕΦΑΡΜΟΣΜΕΝΗ ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ B C D E F H G I Η µέθοδος έχει ως εξής: Επιλέγουµε µία κορυφή εκκίνησης, π.χ. την A, και αµέσως εφαρµόζουµε τρία πράγµατα: α) Επισκεπτόµαστε την κορυφή. β) Τοποθετούµε (push) την κορυφή σε µία στοίβα για να τη θυµόµαστε. γ) Τη µαρκάρουµε, ώστε να µη την επισκεφθούµε ξανά. Ύστερα πηγαίνουµε σε οποιαδήποτε κορυφή που συνδέεται µε την A και την οποία δεν έχουµε ακόµα επισκεφθεί. Έστω ότι πηγαίνουµε στην B. Την επισκεπτόµαστε, την µαρκάρουµε και την τοποθετούµε στην στοίβα. Από την κορυφή B τώρα εφαρµόζουµε την ίδια τεχνική όπως πριν. Αυτό µας οδηγεί στην κορυφή F. Μπορούµε να ονοµάσουµε αυτή τη διαδικασία Κανόνα 1: Κανόνας 1 Αν είναι δυνατόν, επισκεπτόµαστε µία διπλανή κορυφή που δεν την έχουµε ξανα-επισκεφθεί, τη µαρκάρουµε και την τοποθετούµε στη στοίβα. Εφαρµόζοντας ξανά τον Κανόνα 1, µας οδηγεί στο H. Τώρα όµως πρέπει να κάνουµε κάτι άλλο, επειδή δεν υπάρχουν διπλανές κορυφές µε το H που δεν τις έχουµε επισκεφθεί. Έτσι εφαρµόζουµε τον Κανόνα 2: Κανόνας 2 Αν δεν µπορούµε να ακολουθήσουµε τον Κανόνα 1, τότε, αν είναι δυνατόν, εξάγουµε (pop) µία κορυφή από τη στοίβα. Ακολουθώντας αυτό τον κανόνα, εξάγουµε το H από τη στοίβα που µας πηγαίνει πίσω στο F. Όµως και το F δεν έχει διπλανές κορυφές που δεν τις έχουµε επισκεφθεί και έτσι το εξάγουµε. Πηγαίνουµε στο B και κάνουµε το ίδιο. Τελικά καταλήγουµε µόνο µε το A να υπάρχει στη στοίβα. Το A όµως έχει διπλανές κορυφές που δεν τις έχουµε επισκεφθεί και έτσι επισκεπτόµαστε την επόµενη, που είναι η C. Από εδώ πηγαίνουµε πίσω στην A, επισκεπτόµαστε την D, µετά την G και µετά την I και µε διαδοχικές λειτουργίες εξαγωγής (pop) πηγαίνουµε πίσω στο A. Επισκεπτόµαστε την E, και ξανά πίσω στην A. οµές εδοµένων 50

19 Αυτή τη φορά, όµως, η A δεν έχει άλλες διπλανές κορυφές που δεν τις έχουµε επισκεφθεί και έτσι την εξάγουµε από τη στοίβα. Η στοίβα πλέον είναι άδεια και έτσι καταλήγουµε στον Κανόνα 3: Κανόνας 3 Αν δεν µπορούµε να ακολουθήσουµε τον Κανόνα 1 ή τον Κανόνα 2, τότε έχουµε τελειώσει. Άρα η σειρά είναι A,B,F,H,C,D,G,I, E. Παράδειγµα Μία σειρά επίσκεψης είναι 1, 2, 4, 8, 5, 7, 3, 6. Μία άλλη είναι 1, 3,6,8,7,5,2, Αναζήτηση µε Προτεραιότητα Πλάτους Όπως είδαµε στην Αναζήτηση µε Προτεραιότητα Βάθους, ο αλγόριθµος συµπεριφέρεται σαν να θέλει να αποµακρυνθεί όσο το δυνατόν περισσότερο από το σηµείο εκκίνησης. Στην Αναζήτηση µε Προτεραιότητα Πλάτους, απ την άλλη, ο αλγόριθµος αρέσκεται να παραµένει όσο πιο κοντά γίνεται στο σηµείο εκκίνησης. Επισκέπτεται όλες τις κορυφές που είναι διπλανές στην κορυφή εκκίνησης και µόνο τότε προχωρά παρακάτω. Αυτού του είδους η αναζήτηση υλοποιείται µε τη χρήση µίας ουράς. Ας εξετάσουµε το ίδιο παράδειγµα, όπως στην Αναζήτηση µε Προτεραιότητα Βάθους: Η κορυφή A είναι η κορυφή εκκίνησης, έτσι την επισκεπτόµαστε και την κάνουµε τρέχουσα κορυφή. Ύστερα, ακολουθούµε τους εξής κανόνες: Κανόνας 1 Επίσκεψη της επόµενης (αν υπάρχει) κορυφής, που είναι διπλανή στην τρέχουσα κορυφή και δεν την έχουµε ακόµα επισκεφθεί, τη µαρκάρουµε και την εισάγουµε στην ουρά (enqueue). Κανόνας 2 Αν δεν µπορούµε να εφαρµόσουµε τον Κανόνα 1, επειδή δεν υπάρχουν άλλες κορυφές που δεν έχουµε ακόµα επισκεφθεί, εξάγουµε (dequeue) µία κορυφή από την ουρά (αν αυτό είναι εφικτό) και την κάνουµε τρέχουσα κορυφή. οµές εδοµένων 51

20 Κανόνας 3 Αν δεν µπορούµε να εφαρµόσουµε τον Κανόνα 2, επειδή η ουρά είναι άδεια, τότε έχουµε τελειώσει. Έτσι λοιπόν, πρώτα επισκεπτόµαστε όλες τις κορυφές που είναι διπλανές στην A και τις εισάγουµε µία προς µία στην ουρά, καθώς τις επισκεπτόµαστε. Τώρα έχουµε επισκεφθεί τις A, B, C, D και E. Στο σηµείο αυτό, η ουρά (από τον δείκτη front ως τον δείκτη rear) περιέχει τις B, C, D κα E. εν υπάρχουν άλλες διπλανές κορυφές στην A που δεν έχουµε επισκεφθεί, έτσι εξάγουµε την B από την ουρά, την κάνουµε τρέχουσα κορυφή και ψάχνουµε για διπλανές κορυφές σ αυτήν που δεν τις έχουµε ακόµα επισκεφθεί. Βρίσκουµε την F, τη µαρκάρουµε και την εισάγουµε στην ουρά. εν υπάρχουν άλλες διπλανές κορυφές στην B που δεν τις έχουµε επισκεφθεί και έτσι εξάγουµε την C από την ουρά και την κάνουµε τρέχουσα κορυφή. εν έχει διπλανές κορυφές που δεν τις έχουµε επισκεφθεί και έτσι εξάγουµε την D. Κατόπιν επισκεπτόµαστε την G, τη µαρκάρουµε και την εισάγουµε στην ουρά. Η D δεν έχει άλλες διπλανές κορυφές που δεν έχουµε επισκεφθεί και έτσι εξάγουµε την E. Τώρα η ουρά έχει τις F, G. Εξάγουµε την F και επισκεπτόµαστε την H και µετά εξάγουµε την G και επισκεπτόµαστε την I. Τώρα η ουρά έχει τις H, I τις οποίες εξάγουµε µε τη σειρά, διαπιστώνοντας ότι δεν υπάρχουν άλλες διπλανές κορυφές που δεν έχουµε επισκεφθεί και έτσι η ουρά είναι άδεια. Στο σηµείο αυτό έχουµε τελειώσει. Άρα η σειρά επίσκεψης είναι A, B, C, D, E, F, G, H, I Το Πρόβληµα του Συντοµότερου Μονοπατιού (shortest path problem) Ίσως το πιο συνηθισµένο πρόβληµα που αντιµετωπίζουµε, και που να σχετίζεται µε εφαρµογές γράφων, είναι η εύρεση του συντοµότερου µονοπατιού ανάµεσα σε δύο δεδοµένες κορυφές. Η λύση σ αυτό το πρόβληµα εφαρµόζεται σε µία µεγάλη ποικιλία από πραγµατικές καταστάσεις, όπως τα σχέδια κάποιου πίνακα κυκλωµάτων, το χρονοδιάγραµµα κάποιου έργου, τις χιλιοµετρικές αποστάσεις µεταξύ πόλεων σε ένα οδικό δίκτυο ή ένα δίκτυο µε σταθµούς ενός υπόγειου σιδηρόδροµου. Η λύση που υλοποιείται για το πρόβληµα αυτό ονοµάζεται αλγόριθµος του Dijkstra, µια και αναπτύχθηκε από τον Edsger Dijkstra, που πρώτος τον περιέγραψε το Ο αλγόριθµος βασίζεται στην αναπαράσταση ενός γράφου µε τον πίνακα διπλανών κορυφών και βρίσκει το συντοµότερο µονοπάτι από µία συγκεκριµένη κορυφή (πηγή source) προς µία άλλη (προορισµός destination). Στην ουσία ο αλγόριθµος βρίσκει το συντοµότερο µονοπάτι από µία κορυφή προς όλες τις άλλες κορυφές. οµές εδοµένων 52

21 2.6 Συγκριτική Αξιολόγηση οµών εδοµένων ΕΦΑΡΜΟΣΜΕΝΗ ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Ο Πίνακας που ακολουθεί παρέχει τα Πίνακας χαρακτηριστικών οµών εδοµένων οµή εδοµένων Πλεονεκτήµατα Μειονεκτήµατα ΠΊΝΑΚΑΣ Γρήγορη εισαγωγή, πολύ γρήγορη προσπέλαση αν η θέση είναι γνωστή Αργή αναζήτηση, αργή διαγραφή, προκαθορισµένο µέγεθος ΣΤΟΙΒΑ LIFO λειτουργία Αργή προσπέλαση σε άλλα στοιχεία ΟΥΡΑ FIFO λειτουργία Αργή προσπέλαση σε άλλα στοιχεία ΣΥΝ Ε ΕΜΕΝΗ ΛΙΣΤΑ ΥΑ ΙΚΟ ΕΝ ΡΟ ΓΡΑΦΟΣ Γρήγορη εισαγωγή και διαγραφή Γρήγορη αναζήτηση, εισαγωγή και διαγραφή Απεικονίζει καταστάσεις πραγµατικού κόσµου Αργή αναζήτηση Αλγόριθµος διαγραφής πολύπλοκος Μερικοί αλγόριθµοι είναι αργοί και πολύπλοκοι οµές εδοµένων 53

22 2.7 ΑΝΑΦΟΡΕΣ Ευάγγελος Ούτσιος, ΑΛΓΟΡΙΘΜΟΙ & ΟΜΕΣ Ε ΟΜΕΝΩΝ, Σηµειώσεις Θεωρίας, Τµήµα Πληροφορικής & Επικοινωνιών, ΤΕΙ Σερρών, οµές εδοµένων 54

ΚΕΦΑΛΑΙΟ 3 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ

ΚΕΦΑΛΑΙΟ 3 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΚΕΦΑΛΑΙΟ 3 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ Τα δεδομένα (data) είναι η αφαιρετική αναπαράσταση της πραγματικότητας και συνεπώς μία απλοποιημένη όψη της. Η συλλογή των ακατέργαστων δεδομένων και ο συσχετισμός

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

Προγραμματισμός Η/Υ. Δομές Δεδομένων. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Προγραμματισμός Η/Υ. Δομές Δεδομένων. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος Προγραμματισμός Η/Υ Δομές Δεδομένων ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος Δομές Δεδομένων Τα δεδομένα ενός προβλήματος αποθηκεύονται στον υπολογιστή,

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

Επιµέλεια Θοδωρής Πιερράτος

Επιµέλεια Θοδωρής Πιερράτος εδοµένα οµές δεδοµένων και αλγόριθµοι Τα δεδοµένα είναι ακατέργαστα γεγονότα. Η συλλογή των ακατέργαστων δεδοµένων και ο συσχετισµός τους δίνει ως αποτέλεσµα την πληροφορία. Η µέτρηση, η κωδικοποίηση,

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

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Μια δομή δεδομένων στην πληροφορική, συχνά αναπαριστά οντότητες του φυσικού κόσμου στον υπολογιστή. Για την αναπαράσταση αυτή, δημιουργούμε πρώτα ένα αφηρημένο μοντέλο στο οποίο προσδιορίζονται

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

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

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ Ενότητα 7: Αφαίρεση δεδόμενων Πασχαλίδης Δημοσθένης Τμήμα Διαχείρισης Εκκλησιαστικών Κειμηλίων Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

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

Βασικές δοµές δεδοµένων. Ορολογία λιστών. 8.1 Βασικές έννοιες δοµών δεδοµένων 8.2 Υλοποίηση δοµών δεδοµένων 8.3 Μια σύντοµη υπόθεση εργασίας

Βασικές δοµές δεδοµένων. Ορολογία λιστών. 8.1 Βασικές έννοιες δοµών δεδοµένων 8.2 Υλοποίηση δοµών δεδοµένων 8.3 Μια σύντοµη υπόθεση εργασίας ΚΕΦΑΛΑΙΟ 8: Αφηρηµένοι τύποι δεδοµένων 8.1 οµές δεδοµένων (data structures) 8.1 Βασικές έννοιες δοµών δεδοµένων 8.2 Υλοποίηση δοµών δεδοµένων 8.3 Μια σύντοµη υπόθεση εργασίας Αδόµητα δεδοµένα οδός Ζέας

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

Αφηρημένες Δομές Δεδομένων. Στοίβα (Stack) Υλοποίηση στοίβας

Αφηρημένες Δομές Δεδομένων. Στοίβα (Stack) Υλοποίηση στοίβας Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής ισαγωγή στην πιστήμη των Υπολογιστών 2015-16 λγόριθμοι και ομές εδομένων (IΙ) (γράφοι και δένδρα) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης φηρημένες

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ 1 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΚΕΦΑΛΑΙΟ 3ο: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΜΕΡΟΣ 2 ο : ΣΤΟΙΒΑ & ΟΥΡΑ ΙΣΤΟΣΕΛΙΔΑ ΜΑΘΗΜΑΤΟΣ: http://eclass.sch.gr/courses/el594100/ ΣΤΟΙΒΑ 2 Μια στοίβα

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

Ορισµοί κεφαλαίου. Σηµαντικά σηµεία κεφαλαίου

Ορισµοί κεφαλαίου. Σηµαντικά σηµεία κεφαλαίου Ορισµοί κεφαλαίου Τα δεδοµένα είναι η αφαιρετική αναπαράσταση της πραγµατικότητας και συνεπώς µια απλοποιηµένη όψη της οµή εδοµένων είναι ένα σύνολο αποθηκευµένων δεδοµένων που υφίστανται επεξεργασία από

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

Κεφάλαιο 3 : εδοµένα. Πίνακες Στοίβα Ουρά Αναζήτηση Ταξινόµηση. Προγράµµατα

Κεφάλαιο 3 : εδοµένα. Πίνακες Στοίβα Ουρά Αναζήτηση Ταξινόµηση. Προγράµµατα εδοµένα Αλγόριθµοι + οµές εδοµένων = Προγράµµατα Πίνακες Στοίβα Ουρά Αναζήτηση Ταξινόµηση Κεφάλαιο 3 : οµές εδοµένων και Αλγόριθµοι Στοίβα Στη δοµή δεδοµένων στοίβα τα δεδοµένα στοιβάζονται το ένα πάνω

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

ΚΕΦΑΛΑΙΟ 3 Ο ΟΜΕΣ Ε ΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ

ΚΕΦΑΛΑΙΟ 3 Ο ΟΜΕΣ Ε ΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ 27 ΚΕΦΑΛΑΙΟ 3 Ο ΟΜΕΣ Ε ΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΠΕΡΙΕΧΟΜΕΝΑ Η έννοια της δοµής δεδοµένων Βασικές λειτουργίες επί των δοµών δεδοµένων Κατηγορίες δοµών δεδοµένων Πίνακες Στοίβες Ουρές Αρχεία Λίστες ένδρα -

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

Οι δομές δεδομένων στοίβα και ουρά

Οι δομές δεδομένων στοίβα και ουρά Καθηγητής Πληροφορικής Απαγορεύεται η αναπαραγωγή των σημειώσεων χωρίς αναφορά στην πηγή Βίντεο: https://youtu.be/j8petzztqty Οι δομές δεδομένων στοίβα και ουρά Εισαγωγή Στα πλαίσια του μαθήματος της Ανάπτυξης

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

3 ΟΥ και 9 ΟΥ ΚΕΦΑΛΑΙΟΥ

3 ΟΥ και 9 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 3 ΟΥ και 9 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΠΙΝΑΚΩΝ ΣΤΟΙΒΑΣ ΚΑΙ ΟΥΡΑΣ Α ΜΕΡΟΣ ΘΕΩΡΙΑ ΓΙΑ ΠΙΝΑΚΕΣ 3.1

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

Βασικές Δοµές Δεδοµένων. Σύντοµη επανάληψη (ΕΠΛ 035).

Βασικές Δοµές Δεδοµένων. Σύντοµη επανάληψη (ΕΠΛ 035). Βασικές Δοµές Δεδοµένων Σύντοµη επανάληψη (ΕΠΛ 035). Περίληψη Γραµµικές Δοµές Δεδοµένων Πίνακες Λίστες Στοίβες Ουρές Γράφοι Δέντρα Γραµµικές Δοµές Πίνακας (array) A[0] A[1] A[2] A[ ] A[n-1] Προκαθορισµένη

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

Ενότητα 3: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ

Ενότητα 3: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ Ενότητα 3: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΔΕΔΟΜΕΝΑ ΑΛΓΟΡΙΘΜΟΙ -ΠΛΗΡΟΦΟΡΙΑ: Δεδομένα: Αναπαράσταση της Πραγματικότητας Μπορούν να γίνουν αντιληπτά με μια από τις αισθήσεις μας Πληροφορία: Προκύπτει από

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

2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ

2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ 2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ Προκειμένου να επιτευχθεί η «ακριβής περιγραφή» ενός αλγορίθμου, χρησιμοποιείται κάποια γλώσσα που μπορεί να περιγράφει σειρές ενεργειών με τρόπο αυστηρό,

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

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

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

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

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

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

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

Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον υποδειγματική διδασκαλία Κεφ. 3 Δομές Δεδομένων & αλγόριθμοι

Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον υποδειγματική διδασκαλία Κεφ. 3 Δομές Δεδομένων & αλγόριθμοι Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον υποδειγματική διδασκαλία Κεφ. 3 Δομές Δεδομένων & αλγόριθμοι Αραποστάθης Μάριος Καθηγητής Πληροφορικής Πειραματικού Λυκείου Βαρβακείου http://users.sch.gr/mariosarapostathis

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

Κάθε στοιχείο που γίνεται αντιληπτό με μία από τις πέντε αισθήσεις μας

Κάθε στοιχείο που γίνεται αντιληπτό με μία από τις πέντε αισθήσεις μας Κάθε στοιχείο που γίνεται αντιληπτό με μία από τις πέντε αισθήσεις μας είναι ένα δεδομένο. Τα δεδομένα μπορούν να αναπαραστήσουν αφαιρετικά την πραγματικότητα δηλαδή να μας δείχνουν μία απλοποιημένη όψη

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

Επανάληψη Θεωρίας. Καστούμης Γιώργος

Επανάληψη Θεωρίας. Καστούμης Γιώργος ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΨΗ ΘΕΩΡΙΑΣ ΚΕΦΑΛΑΙΟ 1 Ορισµοί: Με τον όρο πρόβληµα εννοείται µια κατάσταση η οποία χρήζει αντιµετώπισης, απαιτεί λύση, η δε λύση της δεν είναι γνωστή,

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ 1 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΚΕΦΑΛΑΙΟ 3 ο : ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΛΓΟΡΙΘΜΟΙ ΚΕΦΑΛΑΙΟ 9 ο : ΠΙΝΑΚΕΣ ΜΕΡΟΣ 1 ο : ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΠΙΝΑΚΕΣ 1 & 2 ΔΙΑΣΤΑΣΕΩΝ http://eclass.sch.gr/courses/el594100/

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 3 ο

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 3 ο ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Να γίνει περιγραφή της δομής δεδομένων Στοίβα. Στη δομή δεδομένων στοίβα τα δεδομένα στοιβάζονται το ένα πάνω στο άλλο. Σχηματικά οι λεπτομέρειες μιας δομής δεδομένων στοίβας μπορούν

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

ιαφάνειες παρουσίασης #11

ιαφάνειες παρουσίασης #11 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ http://www.corelab.ece.ntua.gr/courses/programming/ ιδάσκοντες: Στάθης Ζάχος (zachos@cs.ntua.gr) Νίκος Παπασπύρου (nickie@softlab.ntua.gr) ιαφάνειες παρουσίασης

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

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΚΕΦΑΛΑΙΑ 3 και 9 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΠΙΝΑΚΕΣ Δεδομένα αφαιρετική αναπαράσταση της πραγματικότητας και συνεπώς μία απλοποιημένη όψη της δηλαδή.

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

7 ο ΓΕΛ Καλλιθέας Οδηγός Α.Ε.Π.Π. ΚΕΦΑΛΑΙΟ 3 ο

7 ο ΓΕΛ Καλλιθέας Οδηγός Α.Ε.Π.Π. ΚΕΦΑΛΑΙΟ 3 ο ΚΕΦΑΛΑΙΟ 3 ο 1. Περιγράψτε τη σχέση εδοµένου-πληροφορίας-αλγορίθµου Τα δεδοµένα (data) είναι η αφαιρετική αναπαράσταση της πραγµατικότητας και συνεπώς µία απλοποιηµένη όψη της. Για παράδειγµα, έστω ένα

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

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο Κάθε δομή μπορεί να χρησιμοποιηθεί σε οποιοδήποτε πρόβλημα ή εφαρμογή

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο Κάθε δομή μπορεί να χρησιμοποιηθεί σε οποιοδήποτε πρόβλημα ή εφαρμογή Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 3 1. Κάθε δομή μπορεί να χρησιμοποιηθεί σε οποιοδήποτε πρόβλημα ή εφαρμογή 2. Δυναμικές είναι οι δομές που αποθηκεύονται σε συνεχόμενες θέσεις μνήμης 3. Ένας πίνακας

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

Στοιχεία Θεωρίας Γραφηµάτων (4) - έντρα

Στοιχεία Θεωρίας Γραφηµάτων (4) - έντρα Στοιχεία Θεωρίας Γραφηµάτων (4) - έντρα Ορέστης Τελέλης tllis@unipi.r Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Ο. Τελέλης Πανεπιστήµιο Πειραιώς έντρα 1 / 27 έντρα έντρο είναι απλό συνδεδεµένο µη

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

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

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

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

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

ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου, Γράφοι Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Γράφοι - ορισµοί και υλοποίηση Τοπολογική Ταξινόµηση ιάσχιση Γράφων ΕΠΛ 23 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου, 26 - Γράφοι Ηπιο

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

8.6 Κλάσεις και αντικείμενα 8.7 Δείκτες σε γλώσσα μηχανής

8.6 Κλάσεις και αντικείμενα 8.7 Δείκτες σε γλώσσα μηχανής ΚΕΦΑΛΑΙΟ 8: Αφαιρετικές έννοιες δεδομένων 8.1 Βασικές έννοιες δομών δεδομένων 8.2 Σχετικές έννοιες 8.3 Υλοποίηση δομών δεδομένων 8.4 Μια σύντομη μελέτη περίπτωσης 8.4 Προσαρμοσμένοι τύποι δεδομένων 8.6

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

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΛΓΟΡΙΘΜΟΙ. Πίνακες και βασικές επεξεργασίες αυτών

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΛΓΟΡΙΘΜΟΙ. Πίνακες και βασικές επεξεργασίες αυτών ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΛΓΟΡΙΘΜΟΙ Πίνακες και βασικές επεξεργασίες αυτών Σκοπιές από τις οποίες μελετά η πληροφορική τα δεδομένα Γλωσσών προγραμματισμού Υλικού Δομών δεδομένων Ανάλυσης δεδομένων 22/11/08 Παρουσιάσεις

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

Ενδεικτικές Ερωτήσεις Θεωρίας

Ενδεικτικές Ερωτήσεις Θεωρίας Ενδεικτικές Ερωτήσεις Θεωρίας Κεφάλαιο 2 1. Τι καλούμε αλγόριθμο; 2. Ποια κριτήρια πρέπει οπωσδήποτε να ικανοποιεί ένας αλγόριθμος; 3. Πώς ονομάζεται μια διαδικασία που δεν περατώνεται μετά από συγκεκριμένο

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

Προγραμματισμός Η/Υ. 4 η ενότητα: Δομές Δεδομένων. Τμήμα. Τεχνολόγων Περιβάλλοντος. ΤΕΙ Ιονίων Νήσων. Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων

Προγραμματισμός Η/Υ. 4 η ενότητα: Δομές Δεδομένων. Τμήμα. Τεχνολόγων Περιβάλλοντος. ΤΕΙ Ιονίων Νήσων. Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Προγραμματισμός Η/Υ 4 η ενότητα: Δομές Δεδομένων Τμήμα Τεχνολόγων Περιβάλλοντος ΤΕΙ Ιονίων Νήσων Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative

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

ένδρα (tail, head) Γονέας Παιδί (ancestor, descendant) Φύλλο Εσωτερικός Κόµβος (leaf, non-leaf) που αποτελεί το γονέα του v.

ένδρα (tail, head) Γονέας Παιδί (ancestor, descendant) Φύλλο Εσωτερικός Κόµβος (leaf, non-leaf) που αποτελεί το γονέα του v. ΕΝΟΤΗΤΑ 4 ΕΝ ΡΑ ΗΥ240 - Παναγιώτα Φατούρου 1 ένδρα Κόµβοι (nodes) Ακµές (edges) Ουρά και κεφαλή ακµής (tail, head) Γονέας Παιδί Αδελφικός κόµβος (parent, child, sibling) Μονοπάτι (path) Πρόγονος απόγονος

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

ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ (ΠΑΤΡΑ) ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ (ΠΑΤΡΑ) ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ (ΠΑΤΡΑ) ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Γιάννης Κουτσονίκος Επίκουρος Καθηγητής Οργάνωση Δεδομένων Δομή Δεδομένων: τεχνική οργάνωσης των δεδομένων με σκοπό την

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

Φίλη μαθήτρια, φίλε μαθητή,

Φίλη μαθήτρια, φίλε μαθητή, Φίλη μαθήτρια, φίλε μαθητή, Το παρόν τεύχος, εναρμονισμένο πλήρως με το νέο Πρόγραμμα Σπουδών 2015-2016, αποτελεί μια λογική και φυσική συνέχεια του πρώτου τεύχους. Δόθηκε ιδιαίτερη έμφαση στη μεθοδολογία

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

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

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

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

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

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

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

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

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

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

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

ΕΠΛ 231 Δοµές Δεδοµένων και Αλγόριθµοι 11-1 Γράφοι Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Γράφοι - ορισµοί και υλοποίηση Διάσχιση Γράφων Τοπολογική Ταξινόµηση ΕΠΛ 23 Δοµές Δεδοµένων και Αλγόριθµοι - Γράφοι Η πιο γενική µορφή δοµής

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

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

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

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

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

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

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

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

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

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

Οι δυναμικές δομές δεδομένων στην ΑΕΠΠ

Οι δυναμικές δομές δεδομένων στην ΑΕΠΠ Καθηγητής Πληροφορικής Απαγορεύεται η αναπαραγωγή των σημειώσεων χωρίς αναφορά στην πηγή Οι σημειώσεις, αν και βασίζονται στο διδακτικό πακέτο, αποτελούν προσωπική θεώρηση της σχετικής ύλης και όχι επίσημο

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

ENOTHTA 3 ΟΜΕΣ Ε ΟΜΕΝΩΝ

ENOTHTA 3 ΟΜΕΣ Ε ΟΜΕΝΩΝ ENOTHTA ΟΜΕΣ Ε ΟΜΕΝΩΝ Ανάπτυξη Εφαρµογών, Αλέξης Μπράιλας,, 000 . ΠΙΝΑΚΕΣ Ανάπτυξη Εφαρµογών, Αλέξης Μπράιλας,, 000 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ εδοµένα Αλγόριθµοι + οµές εδοµένων = Προγράµµατα Πίνακες Στοίβα και Ουρά

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

ΣΗΜΕΙΩΣΕΙΣ ΘΕΩΡΙΑΣ ΚΕΦΑΛΑΙΟ 3 ΠΡΟΣΘΗΚΗ

ΣΗΜΕΙΩΣΕΙΣ ΘΕΩΡΙΑΣ ΚΕΦΑΛΑΙΟ 3 ΠΡΟΣΘΗΚΗ ΣΗΜΕΙΩΣΕΙΣ ΘΕΩΡΙΑΣ ΚΕΦΑΛΑΙΟ 3 ΠΡΟΣΘΗΚΗ Α. ΣΤΑΤΙΚΕΣ ΚΑΙ ΔΥΝΑΜΙΚΕΣ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Δομές Δεδομένων Στατικές Δυναμικές Χαρακτηριστικά των Στατικών και Δυναμικών δομών δεδομένων Στατικές δομές: Αποθηκεύονται

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

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

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

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

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ Διάλεξη 9: Εισαγωγή στους Γράφους Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Γράφοι - ορισμοί και υλοποίηση Διάσχιση Γράφων Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

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

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

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

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

#2 Αλγόριθµοι, οµές εδοµένων και Πολυπλοκότητα

#2 Αλγόριθµοι, οµές εδοµένων και Πολυπλοκότητα #2 Αλγόριθµοι, οµές εδοµένων και Πολυπλοκότητα ηµήτρης Ν. Σερπάνος Εργαστήριο Συστηµάτων Υπολογιστών Τµήµα Ηλεκτρολόγων Μηχ. & Τεχνολογίας Υπολογιστών Αλγόριθµοι, οµές εδοµένων και Πολυπλοκότητα Αλγόριθµοι:

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

6η Διάλεξη Διάσχιση Γράφων και Δέντρων

6η Διάλεξη Διάσχιση Γράφων και Δέντρων ΘΕΩΡΙΑ ΓΡΑΦΩΝ 6 η Διάλεξη Διάσχιση Γράφων και Δέντρων Αλγόριθμος αναζήτησης σε Βαθος Αλγόριθμος αναζήτησης κατά Πλάτος Αλγόριθμοι για Δένδρα Εύρεση ελαχίστων Γεννητορικών (Επικαλύπτοντα) Δένδρων Διάσχιση

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

ένδρα u o Κόµβοι (nodes) o Ακµές (edges) o Ουρά και κεφαλή ακµής (tail, head) o Γονέας Παιδί Αδελφικός κόµβος (parent, child, sibling) o Μονοπάτι (pat

ένδρα 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)

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

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

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

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

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

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

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

Στοιχεία Θεωρίας Γράφων (Graph Theory)

Στοιχεία Θεωρίας Γράφων (Graph Theory) Στοιχεία Θεωρίας Γράφων (Graph Theory) Ε Εξάμηνο, Τμήμα Πληροφορικής & Τεχνολογίας Υπολογιστών ΤΕΙ Λαμίας plam@inf.teilam.gr, Οι διαφάνειες βασίζονται στα βιβλία:. Αλγόριθμοι, Σχεδιασμός & Ανάλυση, η έκδοση,

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

υναµικές οµές εδοµένων

υναµικές οµές εδοµένων υναµικές οµές εδοµένων Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: υναµικές οµές εδοµένων Γενικά υναµική έσµευση Μνήµης οµή τύπου structure αυτοαναφορικές δοµές Η δήλωση typedef στη C Αναπαράσταση

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

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

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

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

Οντοκεντρικός Προγραμματισμός

Οντοκεντρικός Προγραμματισμός Οντοκεντρικός Προγραμματισμός Ενότητα 8: C++ ΒΙΒΛΙΟΗΚΗ STL, ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Δομές Δεδομένων ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής Δομές

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

οµές εδοµένων 3 ο Εξάµηνο ΕΝΟΤΗΤΑ 4 ΕΝ ΡΑ

οµές εδοµένων 3 ο Εξάµηνο ΕΝΟΤΗΤΑ 4 ΕΝ ΡΑ ΕΝΟΤΗΤΑ 4 ΕΝ ΡΑ 1 ένδρα εσωτερικός κόµβος u το δένδρο έχει ύψος 4 u έχει ύψος 3 w έχει βάθος 2 κόµβος ένδρο: γράφηµα χωρίς κύκλους o Ρίζα (root) o Κόµβος (node) o Ακµή (edge) o Γονέας (parent) Παιδί (child)

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 23: οµές εδοµένων και Αλγόριθµοι Ενδιάµεση Εξέταση Ηµεροµηνία : ευτέρα, 3 Νοεµβρίου 2008 ιάρκεια : 2.00-4.00 ιδάσκουσα : Άννα Φιλίππου Ονοµατεπώνυµο: ΣΚΕΛΕΤΟΙ

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

Οι λίστες, χάνοντας τα πλεονεκτήματα των πινάκων, λύνουν προβλήματα που παρουσιάζουν οι πίνακες

Οι λίστες, χάνοντας τα πλεονεκτήματα των πινάκων, λύνουν προβλήματα που παρουσιάζουν οι πίνακες Δομές δεδομένων Πίνακες Οι πίνακες είναι το πιο απλό «μέσο» αποθήκευσης ομοειδούς πληροφορίας. Χρησιμοποιούν ακριβώς όση μνήμη χρειάζεται για την αποθήκευση της πληροφορίας Επιτρέπουν την προσπέλαση άμεσα

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

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

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

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

Βασικές οµές εδοµένων

Βασικές οµές εδοµένων Βασικές οµές εδοµένων Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Αφηρηµένοι Τύποι εδοµένων Οι ΑΤ Στοίβα και Ουρά Υλοποίηση των ΑΤ Στοίβα και Ουρά µε ιαδοχική και υναµική Χορήγηση Μνήµης

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

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

ΠΛΗΡΟΦΟΡΙΑΚΑ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Οικονοµικό Πανεπιστήµιο Αθηνών Τµήµα ιοικητικής Επιστήµης & Τεχνολογίας ΠΛΗΡΟΦΟΡΙΑΚΑ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Κεφάλαιο 9 οµές εδοµένων σε C Γιώργος Γιαγλής Περίληψη Κεφαλαίου 9 οµές εδοµένων υναµικές

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

ΕΝΟΤΗΤΑ 4 ΕΝ ΡΑ. ΗΥ240 - Παναγιώτα Φατούρου 1

ΕΝΟΤΗΤΑ 4 ΕΝ ΡΑ. ΗΥ240 - Παναγιώτα Φατούρου 1 ΕΝΟΤΗΤΑ 4 ΕΝ ΡΑ ΗΥ240 - Παναγιώτα Φατούρου 1 ένδρα Κόµβοι (nodes) Ακµές (edges) Ουρά και κεφαλή ακµής (tail, head) Γονέας Παιδί Αδελφικός κόµβος (parent, child, sibling) Μονοπάτι (path) Πρόγονος απόγονος

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

επιµέλεια Θοδωρής Πιερράτος

επιµέλεια Θοδωρής Πιερράτος Ερωτήσεις Σωστό Λάθος 1. Οι διαστάσεις ενός πίνακα δεν µπορούν να µεταβάλλονται κατά την εκτέλση ενός αλγόριθµου. 2. Ο πίνακας είναι στατική δοµή δεδοµένων. 3. Ένας πίνακας δυο στηλών µπορεί να περιέχει

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

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

Δομές Δεδομένων (Data Structures) Δομές Δεδομένων (Data Structures) Στοίβες Ουρές Στοίβες: Βασικές Έννοιες. Ουρές: Βασικές Έννοιες. Βασικές Λειτουργίες. Παραδείγματα. Στοίβες Δομή τύπου LIFO: Last In - First Out (τελευταία εισαγωγή πρώτη

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

ΑΛΓΟΡΙΘΜΟΙ. Τι είναι αλγόριθμος

ΑΛΓΟΡΙΘΜΟΙ. Τι είναι αλγόριθμος ΑΛΓΟΡΙΘΜΟΙ Στο σηµείωµα αυτό αρχικά εξηγείται η έννοια αλγόριθµος και παραθέτονται τα σπουδαιότερα κριτήρια που πρέπει να πληρεί κάθε αλγόριθµος. Στη συνέχεια, η σπουδαιότητα των αλγορίθµων συνδυάζεται

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

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

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

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

υαδικό έντρο Αναζήτησης (BSTree)

υαδικό έντρο Αναζήτησης (BSTree) Εργαστήριο 6 υαδικό έντρο Αναζήτησης (BSTree) Εισαγωγή Οι περισσότερες δοµές δεδοµένων, που εξετάσαµε µέχρι τώρα (λίστες, στοίβες, ουρές) ήταν γραµ- µικές (ή δοµές δεδοµένων µιας διάστασης). Στην παράγραφο

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

Περιεχόμενα. Δομές δεδομένων. Τεχνικές σχεδίασης αλγορίθμων. Εισαγωγή στον προγραμματισμό. Υποπρογράμματα. Επαναληπτικά κριτήρια αξιολόγησης

Περιεχόμενα. Δομές δεδομένων. Τεχνικές σχεδίασης αλγορίθμων. Εισαγωγή στον προγραμματισμό. Υποπρογράμματα. Επαναληπτικά κριτήρια αξιολόγησης Περιεχόμενα Δομές δεδομένων 37. Δομές δεδομένων (θεωρητικά στοιχεία)...11 38. Εισαγωγή στους μονοδιάστατους πίνακες...16 39. Βασικές επεξεργασίες στους μονοδιάστατους πίνακες...25 40. Ασκήσεις στους μονοδιάστατους

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

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

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

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

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

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

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

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

ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΤΕ ΠΛΗΡΟΦΟΡΙΚΗΣ ΣΗΜΕΙΩΣΕΙΣ ΜΑΘΗΜΑΤΟΣ & ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΤΕ ΠΛΗΡΟΦΟΡΙΚΗΣ ΣΗΜΕΙΩΣΕΙΣ ΜΑΘΗΜΑΤΟΣ & ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Β ΕΞΑΜΗΝΟ ΣΠΟΥΔΩΝ Επιμέλεια Δρ Τσακνάκης Ιωάννης Επίκουρος

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

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

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

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

Εισαγωγή στις Αρχές της επιστήμης των Η/Υ. Β Λυκείου

Εισαγωγή στις Αρχές της επιστήμης των Η/Υ. Β Λυκείου Εισαγωγή στις Αρχές της επιστήμης των Η/Υ Β Λυκείου Επιστήμη των υπολογιστών μελετά Θεωρητικά θεμέλια Φύση πληροφοριών Φύση αλγορίθμων Φύση υπολογισμών Και τις τεχνολογικές εφαρμογές τους Από τις σκοπιές

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

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

Δομές δεδομένων και Αλγόριθμοι Κεφάλαιο 1 Ανάλυση Προβλήματος Η έννοια πρόβλημα Κατανόηση προβλήματος Δομή προβλήματος Καθορισμός απαιτήσεων Κατηγορίες προβλημάτων Πρόβλημα και υπολογιστής Κεφάλαιο 2 Βασικές Έννοιες Αλγορίθμων Τι είναι

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

Βασικές Έννοιες Δοµών Δεδοµένων

Βασικές Έννοιες Δοµών Δεδοµένων Δοµές Δεδοµένων Δοµές Δεδοµένων Στην ενότητα αυτή θα γνωρίσουµε ορισµένες Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε για την αποδοτική επίλυση του προβλήµατος του ευσταθούς ταιριάσµατος Βασικές Έννοιες

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

Ενότητα 10 Γράφοι (ή Γραφήµατα)

Ενότητα 10 Γράφοι (ή Γραφήµατα) Ενότητα 10 Γράφοι (ή γραφήµατα) ΗΥ240 - Παναγιώτα Φατούρου 1 Γράφοι (ή Γραφήµατα) Ένας γράφος αποτελείται από ένα σύνολο από σηµεία (που λέγονται κόµβοι) και ένα σύνολο από γραµµές (που λέγονται ακµές)

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

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

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

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

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

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

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

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΡΧΗ 1ης ΣΕΛΙ ΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΦΕΒΡΟΥΑΡΙΟΥ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ : 7 ΘΕΜΑ Α :

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 3 ο. Πίνακες. Επικοινωνία:

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 3 ο. Πίνακες. Επικοινωνία: Πίνακες Επικοινωνία: spzygouris@gmail.com Να δοθεί ο ορισμός του όρου «δεδομένα». Δεδομένα αποτελούν οποιαδήποτε στοιχεία μπορούν να εξαχθούν από τη διατύπωση του προβλήματος και η επιλογή τους εξαρτάται

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

3 ΑΝΑ ΡΟΜΗ ΑΝΑΖΗΤΗΣΗ - ΤΑΞΙΝΟΜΗΣΗ. n! = 1*2*3*..(n-1)*n. n! = 1 αν n = 0, = n*(n-1)! αν n > ΑΝΑ ΡΟΜΗ Εισαγωγή

3 ΑΝΑ ΡΟΜΗ ΑΝΑΖΗΤΗΣΗ - ΤΑΞΙΝΟΜΗΣΗ. n! = 1*2*3*..(n-1)*n. n! = 1 αν n = 0, = n*(n-1)! αν n > ΑΝΑ ΡΟΜΗ Εισαγωγή 3 ΑΝΑ ΡΟΜΗ ΑΝΑΖΗΤΗΣΗ - ΤΑΞΙΝΟΜΗΣΗ 3.1 ΑΝΑ ΡΟΜΗ 3.1.1 Εισαγωγή ΕΦΑΡΜΟΣΜΕΝΗ ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Αναδροµή είναι η µέθοδος κατά την οποία, σε µία γλώσσα προγραµµατισµού, µία διαδικασία ή συνάρτηση έχει την δυνατότητα

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

Γράφημα. Συνδυαστικό αντικείμενο που αποτελείται από 2 σύνολα: Σύνολο κορυφών (vertex set) Σύνολο ακμών (edge set) 4 5 πλήθος κορυφών πλήθος ακμών

Γράφημα. Συνδυαστικό αντικείμενο που αποτελείται από 2 σύνολα: Σύνολο κορυφών (vertex set) Σύνολο ακμών (edge set) 4 5 πλήθος κορυφών πλήθος ακμών Γράφημα Συνδυαστικό αντικείμενο που αποτελείται από 2 σύνολα: Σύνολο κορυφών (vertex set) Σύνολο ακμών (edge set) 1 2 3 4 5 πλήθος κορυφών πλήθος ακμών Γράφημα Συνδυαστικό αντικείμενο που αποτελείται από

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΟΝΟΜΑΤΕΠΩΝΥΜΟ:

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΟΝΟΜΑΤΕΠΩΝΥΜΟ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΟΝΟΜΑΤΕΠΩΝΥΜΟ: Θέμα 1ο I. Τι γνωρίζετε για τη στοίβα και τι για την ουρά; (Μονάδες 7) Στοίβα (Stack) είναι μια δομή στην οποία

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

ΔΙΑΣΧΙΣΗ ΓΡΑΦΗΜΑΤΩΝ 1

ΔΙΑΣΧΙΣΗ ΓΡΑΦΗΜΑΤΩΝ 1 ΔΙΑΣΧΙΣΗ ΓΡΑΦΗΜΑΤΩΝ 1 Θέματα μελέτης Πρόβλημα αναζήτησης σε γραφήματα Αναζήτηση κατά βάθος (Depth-first search DFS) Αναζήτηση κατά πλάτος (Breadth-first search BFS) 2 Γράφημα (graph) Αναπαράσταση συνόλου

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

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

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

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

Διάλεξη 05: Αφηρημένοι Τύποι Δεδομένων

Διάλεξη 05: Αφηρημένοι Τύποι Δεδομένων Διάλεξη 05: Αφηρημένοι Τύποι Δεδομένων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Αφηρημένοι Τύποι Δεδομένων (ΑΤΔ) Οι ΑΤΔ Στοίβα και Ουρά Υλοποίηση των ΑΤΔ Στοίβα και Ουρά ΕΠΛ231 Δομές Δεδομένων

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

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

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

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

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 5. Αφηρημένοι Τύποι Δεδομένων / Στοίβες και Ουρές

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 5. Αφηρημένοι Τύποι Δεδομένων / Στοίβες και Ουρές ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 5. Αφηρημένοι Τύποι Δεδομένων / Στοίβες και Ουρές ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 2 Διάλεξη 05: Αφηρημένοι Τύποι Δεδομένων Στην ενότητα αυτή θα μελετηθούν τα

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

Βασικές Προτάσεις. έντρα. υαδικά έντρα Αναζήτησης ( Α) Ισοζυγισµένα έντρα και Υψος. Κάθε δέντρο µε n κόµβους έχει n 1 ακµές.

Βασικές Προτάσεις. έντρα. υαδικά έντρα Αναζήτησης ( Α) Ισοζυγισµένα έντρα και Υψος. Κάθε δέντρο µε n κόµβους έχει n 1 ακµές. Βασικές Προτάσεις έντρα Ορέστης Τελέλης Κάθε δέντρο µε n κόµβους έχει n ακµές. ικαιολόγηση: Με επαγωγή στο πλήθος των κόµβων, n. έντρο µε k εσωτερικούς κόµβους και l ϕύλλα έχει n = k + l κόµβους. tllis@unipi.r

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

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

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

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

Initialize each person to be free. while (some man is free and hasn't proposed to every woman) { Choose such a man m w = 1 st woman on m's list to

Initialize each person to be free. while (some man is free and hasn't proposed to every woman) { Choose such a man m w = 1 st woman on m's list to Κεφάλαιο 2 Δοµές Δεδοµένων Ι Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. 1 Δοµές Δεδοµένων Ι Στην ενότητα αυτή θα γνωρίσουµε ορισµένες Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε

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

Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 1: Δικτυωτή Ανάλυση (Θεωρία Γράφων)

Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 1: Δικτυωτή Ανάλυση (Θεωρία Γράφων) Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 1: Δικτυωτή Ανάλυση (Θεωρία Γράφων) Μπεληγιάννης Γρηγόριος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διοίκησης Επιχειρήσεων Αγροτικών Προϊόντων & Τροφίμων

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

7. Στις στατικές δοµές δεδοµένων, το ακριβές µέγεθος της απαιτούµενης µνήµης καθορίζεται

7. Στις στατικές δοµές δεδοµένων, το ακριβές µέγεθος της απαιτούµενης µνήµης καθορίζεται ΑΕσΠΠ-Κεφ3. οµές εδοµένων 1 ΣΩΣΤΟ ΛΑΘΟΣ 1. Με τις δοµές δεδοµένων η διαχείριση των δεδοµένων γίνεται πιο δύσκολη. 2. Αποτελεί δεδοµένο ότι το βάρος του Επαµεινώνδα είναι 185 κιλά. Πληροφορία είναι ότι

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

Σποραδικές Μήτρες (Sparse Matrices) Αθανάσιος Μυγδαλ ας ΑΠΘ AΠΘ. 17 Μαρτίου 2010 c Α.Μ.

Σποραδικές Μήτρες (Sparse Matrices) Αθανάσιος Μυγδαλ ας ΑΠΘ AΠΘ. 17 Μαρτίου 2010 c Α.Μ. 1 Σποραδικές Μήτρες (Sparse Matrices) Αθανάσιος Μυγδαλ ας ΑΠΘ 17 Μαρτίου 2010 c Α.Μ. /1 30 Τρόποι αποθήκευσης σποραδικών µητρών Υπάρχουν πολλοί τρόποι αποθήκευσης σποραδικών µητρών αναλόγως των δοµικών

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