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

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

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

Transcript

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

2 Βιβλιογραφία Robert Sedgewick, Αλγόριθμοι σε C, Μέρη 1-4 (Θεμελιώδεις Έννοιες, Δομές Δεδομένων, Ταξινόμηση, Αναζήτηση), Τρίτη Αμερικάνικη Έκδοση, Εκδόσεις Κλειδάριθμος Γεώργιος Φρ. Γεωργακόπουλος, Δομές Δεδομένων: Έννοιες, Τεχνικές, Αλγόριθμοι, Πανεπιστημιακές Εκδόσεις Κρήτης, Ηράκλειο Cormen, Leiserson, Rivest and Stein. Introduction to Algorithms, MIT Press, Third Edition, Kurt Mehlhorn and Peter Sanders: Algorithms and Data Structures, The Basic Toolbox, Springer, Χαροκόπειο Πανεπιστήμιο 2/49

3 Δομές Δεδομένων Στην επιστήμη υπολογιστών μία δομή δεδομένων είναι ένας συγκεκριμένος τρόπος αποθήκευσης και οργάνωσης δεδομένων στον υπολογιστή με σκοπό αυτά τα δεδομένα να μπορούν να χρησιμοποιηθούν αποδοτικά. Χαροκόπειο Πανεπιστήμιο 3/49

4 Τύποι Δεδομένων Ένας τύπος δεδομένων αποτελείται από: ένα σύνολο τιμών ένα σύνολο από πράξεις που μπορούν να εκτελεστούν σε αυτές τις τιμές Χαροκόπειο Πανεπιστήμιο 4/49

5 Τύποι Δεδομένων Ένας τύπος δεδομένων αποτελείται από: ένα σύνολο τιμών ένα σύνολο από πράξεις που μπορούν να εκτελεστούν σε αυτές τις τιμές Παράδειγμα boolean 2 τιμές: true, false πράξεις: AND, OR, NOT, κ.τ.λ Χαροκόπειο Πανεπιστήμιο 4/49

6 Τύποι Δεδομένων Ένας τύπος δεδομένων αποτελείται από: ένα σύνολο τιμών ένα σύνολο από πράξεις που μπορούν να εκτελεστούν σε αυτές τις τιμές Παράδειγμα ακέραιος τιμές Z πράξεις: πρόσθεση, αφαίρεση, κ.τ.λ Χαροκόπειο Πανεπιστήμιο 4/49

7 Στοιχειώδης Δομές Δεδομένων Θα μιλήσουμε για τις παρακάτω στοιχειώδης δομές: Πίνακες Λίστες Οι δομές αυτές είναι βασικοί λίθοι για άλλες πιο πολύπλοκες δομές δεδομένων. Χαροκόπειο Πανεπιστήμιο 5/49

8 Πίνακας (array) Η πιο θεμελιώδης δομή δεδομένων byte 32-bit word Χαροκόπειο Πανεπιστήμιο 6/49

9 Πίνακας (array) Η πιο θεμελιώδης δομή δεδομένων Ένας πίνακας αποτελεί μία σταθερή συλλογή δεδομένων ίδιου τύπου τα οποία αποθηκεύονται ακολουθιακά σε κάποιο σημείο της μνήμης. Χαροκόπειο Πανεπιστήμιο 7/49

10 Πίνακας (array) Η πιο θεμελιώδης δομή δεδομένων Ένας πίνακας αποτελεί μία σταθερή συλλογή δεδομένων ίδιου τύπου τα οποία αποθηκεύονται ακολουθιακά σε κάποιο σημείο της μνήμης. Χαρακτηριστικά Σταθερό μέγεθος Ένας τύπος δεδομένων Συνεχόμενη αποθήκευση στην μνήμη Τυχαία πρόσβαση (RAM - random access memory) Χαροκόπειο Πανεπιστήμιο 7/49

11 Πίνακας (array) Η πιο θεμελιώδης δομή δεδομένων Μία δήλωση σε γλώσσα C όπως η παρακάτω: int array [ ] ; δεσμεύει ένα κομμάτι μνήμης 100 ακεραίων. Η δήλωση περιέχει όλη την απαραίτητη πληροφορία ώστε ο μεταγλωττιστής να μπορεί να υλοποιήσει εντολές όπως array [ 2 3 ] = 5 ; με την χρήση τυχαίας πρόσβασης. Χαροκόπειο Πανεπιστήμιο 8/49

12 Πίνακας (array) Η πιο θεμελιώδης δομή δεδομένων Στην C το όνομα ενός πίνακα είνα συνώνυμο με την διεύθυνση μνήμης του πρώτου στοιχείου του πίνακα. Έτσι και αλλιώς ο μεταγλωττιστής αποφασίζει που να αποθηκεύσει τον πίνακα. Από τον τύπο του πίνακα (int) ξέρει πως κάθε στοιχείο του πίνακα αποτελείται από 4 bytes (σε 32-bit αρχιτεκτονική). Αφού τα στοιχεία είναι συνεχόμενα στην μνήμη, το στοιχείο 23 είναι στην διεύθυνση μνήμης array Χαροκόπειο Πανεπιστήμιο 9/49

13 Πίνακας Ποια είναι τα πλεονεκτήματα και μειονεκτήματα των πινάκων Για να απαντήσουμε αυτό το ερώτημα θα κάνουμε μία μικρή παρένθεση. Χαροκόπειο Πανεπιστήμιο 10/49

14 Ανάλυση Αλγορίθμων διαδικασία κατανόησης της απόδοσης και συμπεριφοράς σημαντική στη σχεδίαση και υλοποίηση Διαφορετικοί τρόποι ανάλυσης Εμπειρική ανάλυση (empirical analysis) Προσπάθεια κατανόησης συμπεριφοράς μέσω μίας υλοποίησης Μαθηματική ανάλυση Προσπάθεια κατανόησης συμπεριφοράς μέσω των μαθηματικών Χαροκόπειο Πανεπιστήμιο 11/49

15 Εμπειρική ανάλυση Χρειαζόμαστε μία σωστή και ολοκληρωμένη υλοποίηση Πρέπει να αποφασίσουμε τι δεδομένα θα χρησιμοποιήσουμε πραγματικά τυχαία Χρειαζόμαστε ένα μέτρο σύγκρισης Χαροκόπειο Πανεπιστήμιο 12/49

16 Ασυμπτωτική Ανάλυση Μετράμε την απόδοση ενός αλγορίθμου ή δομής δεδομένων ως συνάρτηση του μεγέθους της εισόδου n f(n). Συνήθως μετράμε ως μονάδα κόστους μία σημαντικού κόστους εντολή του υπολογιστή, π.χ: μαθηματικές πράξεις συγκρίσεις load-store από την μνήμη Χαροκόπειο Πανεπιστήμιο 13/49

17 Ασυμπτωτική Ανάλυση Παράδειγμα Έστω ένας πίνακας με n ακεραίους. Πόσο χρόνο χρειάζεται ο παρακάτω αλγόριθμος για να βρει το μέγιστο. 1 int findmax ( int * array, int n ) 2 { 3 int max = array [ 0 ] ; 4 for ( int i = 1 ; i < n ; ++i ) 5 { 6 if ( array [ i ] > max ) 7 max = array [ i ] ; 8 } 9 return max ; 10 } Χαροκόπειο Πανεπιστήμιο 14/49

18 Ασυμπτωτική Ανάλυση Γενική Ιδέα δεν μας ενδιαφέρουν οι σταθερές εάν ένας αλγόριθμος κάνει 2 προσθέσεις και μία σύγκριση για n στοιχεία, εμείς δεν μετράμε 3n κόστος αλλά n προσπαθούμε να κάνουμε την ανάλυση ανεξάρτητη από την ταχύτητα του υπολογιστή που τρέχει ο αλγόριθμος Χαροκόπειο Πανεπιστήμιο 15/49

19 Ασυμπτωτική Ανάλυση Γενική Ιδέα δεν μας ενδιαφέρουν οι σταθερές εάν ένας αλγόριθμος κάνει 2 προσθέσεις και μία σύγκριση για n στοιχεία, εμείς δεν μετράμε 3n κόστος αλλά n προσπαθούμε να κάνουμε την ανάλυση ανεξάρτητη από την ταχύτητα του υπολογιστή που τρέχει ο αλγόριθμος Προσπαθούμε να καταλάβουμε πως συμπεριφέρεται ένας αλγόριθμος όταν n. Εάν ένας αλγόριθμος έχει κόστος 4n 4 + 2n εμείς αγνοούμε τους μικρούς όρους και τις σταθερές και λέμε πως ο αλγόριθμος συμπεριφέρεται n 4 για πολύ μεγάλα n. Χαροκόπειο Πανεπιστήμιο 15/49

20 Ασυμπτωτική Ανάλυση Παράδειγμα Έστω ένας αλγόριθμος Α που για είσοδο μεγέθους n τρέχει σε χρόνο 3n 2 + 2n + 5 Χαροκόπειο Πανεπιστήμιο 16/49

21 Ασυμπτωτική Ανάλυση Παράδειγμα Έστω ένας αλγόριθμος Α που για είσοδο μεγέθους n τρέχει σε χρόνο 3n 2 + 2n + 5 Ισχυριζόμαστε πως για αρκετά μεγάλες εισόδους οι χαμηλές δυνάμεις δεν έχουν μεγάλη σημασία Χαροκόπειο Πανεπιστήμιο 16/49

22 Ασυμπτωτική Ανάλυση Παράδειγμα Έστω ένας αλγόριθμος Α που για είσοδο μεγέθους n τρέχει σε χρόνο 3n 2 + 2n + 5 Ισχυριζόμαστε πως για αρκετά μεγάλες εισόδους οι χαμηλές δυνάμεις δεν έχουν μεγάλη σημασία n 3n 2 2n Χαροκόπειο Πανεπιστήμιο 16/49

23 Ασυμπτωτική Ανάλυση Παράδειγμα n 2 συγκριτικά με 2n + 5 3n 2 2n Ο τετραγωνικός όρος αυξάνει πολύ πιο γρήγορα από τον γραμμικό όρο. Αγνοώντας τους μικρούς όρους χάνουμε πολύ λίγο για μεγάλες εισόδους Χαροκόπειο Πανεπιστήμιο 17/49

24 Συμβολισμός μεγάλου όμικρον big-oh notation O(g(n)) = { f(n) : υπάρχουν θετικές σταθερές c και n } 0 ώστε 0 f(n) c g(n) για όλα τα n n 0 Χαροκόπειο Πανεπιστήμιο 18/49

25 Συμβολισμός μεγάλου όμικρον big-oh notation O(g(n)) = { f(n) : υπάρχουν θετικές σταθερές c και n } 0 ώστε 0 f(n) c g(n) για όλα τα n n 0 cg(n) f(n) n n0 f(n) = O(g(n)) Χαροκόπειο Πανεπιστήμιο 18/49

26 Συμβολισμός μεγάλου όμικρον big-oh notation Θεώρημα 2n n 2 + n O(n 3 ) Απόδειξη Αρκεί να βρούμε θετική σταθερά c και n 0 0 ώστε να ισχύει: 2n n 2 + n cn 3 Χαροκόπειο Πανεπιστήμιο 19/49

27 Συμβολισμός μεγάλου όμικρον big-oh notation Θεώρημα 2n n 2 + n O(n 3 ) Απόδειξη Αρκεί να βρούμε θετική σταθερά c και n 0 0 ώστε να ισχύει: Διαιρώντας με n > 1 έχουμε πως αρκεί 2n n 2 + n cn 3 2n n + 1 cn 2. Χαροκόπειο Πανεπιστήμιο 19/49

28 Συμβολισμός μεγάλου όμικρον big-oh notation Θεώρημα 2n n 2 + n O(n 3 ) Απόδειξη Αρκεί να βρούμε θετική σταθερά c και n 0 0 ώστε να ισχύει: Διαιρώντας με n > 1 έχουμε πως αρκεί 2n n 2 + n cn 3 2n n + 1 cn 2. Για n 1 έχουμε 2n n + 1 2n n 2 + n 2 103n 2. Άρα μπορούμε να θέσουμε c = 103 και n 0 = 1 > 0. Χαροκόπειο Πανεπιστήμιο 19/49

29 Συμβολισμός μεγάλου όμικρον big-oh notation Θεώρημα n O(2 n ) Απόδειξη Πρέπει να βρούμε c > 0, n 0 > 0 ώστε να ισχύει n c 2 n. Χαροκόπειο Πανεπιστήμιο 20/49

30 Συμβολισμός μεγάλου όμικρον big-oh notation Θεώρημα n O(2 n ) Απόδειξη Πρέπει να βρούμε c > 0, n 0 > 0 ώστε να ισχύει n c 2 n. Παρατηρώντας τον τρόπο που μεγαλώνουν οι συναρτήσεις βλέπουμε πως για c = 1 και n 0 = 1 η ανισότητα ισχύει. Πρέπει όμως να αποδείξουμε πως παραμένει αλήθεια για κάθε n n 0 = 1. Χαροκόπειο Πανεπιστήμιο 20/49

31 Συμβολισμός μεγάλου όμικρον big-oh notation Θεώρημα n O(2 n ) Απόδειξη Πρέπει να βρούμε c > 0, n 0 > 0 ώστε να ισχύει n c 2 n. Παρατηρώντας τον τρόπο που μεγαλώνουν οι συναρτήσεις βλέπουμε πως για c = 1 και n 0 = 1 η ανισότητα ισχύει. Πρέπει όμως να αποδείξουμε πως παραμένει αλήθεια για κάθε n n 0 = 1. Έστω f(n) = 2 n n. Η συνάρτηση είναι συνεχής και παραγωγίσιμη. Η πρώτη παράγωγος είναι f (n) = ln(2) 2 n 1 και είναι θετική για κάθε n 1. Χαροκόπειο Πανεπιστήμιο 20/49

32 Συμβολισμός μεγάλου όμικρον big-oh notation Θεώρημα n O(2 n ) Απόδειξη Πρέπει να βρούμε c > 0, n 0 > 0 ώστε να ισχύει n c 2 n. Παρατηρώντας τον τρόπο που μεγαλώνουν οι συναρτήσεις βλέπουμε πως για c = 1 και n 0 = 1 η ανισότητα ισχύει. Πρέπει όμως να αποδείξουμε πως παραμένει αλήθεια για κάθε n n 0 = 1. Έστω f(n) = 2 n n. Η συνάρτηση είναι συνεχής και παραγωγίσιμη. Η πρώτη παράγωγος είναι f (n) = ln(2) 2 n 1 και είναι θετική για κάθε n 1. Άρα η συνάρτηση f(n) είναι γνησίως αύξουσα για n 1 που σημαίνει πως παραμένει θετική για κάθε n n 0 = 1. Χαροκόπειο Πανεπιστήμιο 20/49

33 Συμβολισμός μεγάλου όμικρον big-oh notation Θεώρημα O(1) Απόδειξη Πρέπει να δείξουμε πως υπάρχουν c > 0, n 0 > 0 ώστε c 1 για κάθε n n 0. Η σχέση ισχύει για c = και n 0 = 1. Χαροκόπειο Πανεπιστήμιο 21/49

34 Συμβολισμός μεγάλου όμικρον Παράδειγμα Θεώρημα Για a > 0 ισχύει πως f(n) = an 2 + bn O(n 2 ). Απόδειξη Πρέπει να βρούμε θετική σταθερά c και n 0 0 ώστε ή ισοδύναμα an 2 + bn cn 2 για κάθε n n 0 an + b cn. Επειδή an + b a n + b a n + b n για n 1 μπορούμε να διαλέξουμε c = a + b και n 0 οποιαδήποτε θετική τιμή μεγαλύτερη ή ίση του ένα π.χ n 0 = 1. Χαροκόπειο Πανεπιστήμιο 22/49

35 Συμβολισμός μεγάλου όμικρον big-oh notation Συναντάμε συχνά τους εξής χρόνους: σταθερός O(1) λογαριθμικός O(log n) γραμμικός O(n) O(n log n) τετραγωνικός O(n 2 ) πολυωνυμικός O(n k ) εκθετικός O(2 n ) Χαροκόπειο Πανεπιστήμιο 23/49

36 Συμβολισμός μεγάλου όμικρον big-oh notation log(x) x x*log(x) x*x Running Time Input Size Χαροκόπειο Πανεπιστήμιο 24/49

37 Συμβολισμός μεγάλου όμικρον big-oh notation x*log(x) x*x 8000 Running Time Input Size Χαροκόπειο Πανεπιστήμιο 24/49

38 Συμβολισμός Ομέγα Ω-notation Ω(g(n)) = { f(n) : υπάρχουν θετικές σταθερές c και n } 0 ώστε 0 c g(n) f(n) για όλα τα n n 0 f(n) cg(n) n n0 f(n) = Ω(g(n)) Χαροκόπειο Πανεπιστήμιο 25/49

39 Συμβολισμός Θήτα Θ-notation Θ(g(n)) = { } f(n) : f(n) = O(g(n)) και f(n) = Ω(g(n)) c2g(n) f(n) c1g(n) n n0 f(n) = Θ(g(n)) Χαροκόπειο Πανεπιστήμιο 26/49

40 Ανάλυση Αλγορίθμων Διαφορετικοί τρόποι ανάλυσης Εμπειρική ανάλυση (empirical analysis) Προσπάθεια κατανόησης συμπεριφοράς μέσω μίας υλοποίησης Μαθηματική ανάλυση Προσπάθεια κατανόησης συμπεριφοράς μέσω των μαθηματικών Καμία μέθοδος δεν είναι πανάκεια Χαροκόπειο Πανεπιστήμιο 27/49

41 Πίνακας Πλεονεκτήματα και Μειονεκτήματα Πλεονεκτήματα προσπέλαση στοιχείου σε σταθερό χρόνο, O(1) τυχαία προσπέλαση Μειονεκτήματα σταθερό μέγεθος δεν μπορούμε να προσθέσουμε στοιχεία στη μέση ενός πίνακα αναδιάταξη στοιχείων μόνο με αντιγραφή Χαροκόπειο Πανεπιστήμιο 28/49

42 Διδιάστατοι Πίνακες πίνακες με 2 αριθμοδείκτες, πχ array[3][2] αντιστοιχούν σε μήτρες (matrices) υλοποιούνται με μονοδιάστατους πίνακες, πχ για 5 5 μεγέθους πίνακα έχουμε array[i][j] = array[5 i + j] άρα κάθε στοιχείο χρειάζεται O(1) χρόνο για να προσπελαστεί Χαροκόπειο Πανεπιστήμιο 29/49

43 Διδιάστατοι Πίνακες Πολλαπλασιασμός Πινάκων c 11 c 12 c 1p a 11 a 12 a 1m b 11 b 12 b 1p c 21 c 22 c 2p a 21 a 22 a 2m b 21 b 22 b 2p = c n1 c n2 c np a n1 a n2 a nm b m1 b m2 b mp for ( i = 0 ; i < n ; i++ ) for ( j = 0 ; j < p ; j++ ) for ( k = 0, c [ i ] [ j ] = 0. 0 ; k < m ; k++ ) c [ i ] [ j ] += a [ i ] [ k ] * b [ k ] [ j ] ; Χαροκόπειο Πανεπιστήμιο 30/49

44 Διδιάστατοι Πίνακες Πολλαπλασιασμός Πινάκων c 11 c 12 c 1p a 11 a 12 a 1m b 11 b 12 b 1p c 21 c 22 c 2p a 21 a 22 a 2m b 21 b 22 b 2p = c n1 c n2 c np a n1 a n2 a nm b m1 b m2 b mp for ( i = 0 ; i < n ; i++ ) for ( j = 0 ; j < p ; j++ ) for ( k = 0, c [ i ] [ j ] = 0. 0 ; k < m ; k++ ) c [ i ] [ j ] += a [ i ] [ k ] * b [ k ] [ j ] ; Η πολυπλοκότητα είναι O(npm) Χαροκόπειο Πανεπιστήμιο 30/49

45 Συνδεδεμένες Λίστες Linked Lists Στόχος πρόσβαση σε μία συλλογή στοιχείων με τη σειρά (ακολουθιακά) αποδοτική αναδιάταξη στοιχείων, διαγραφή, προσθήκη, κ.τ.λ Χαροκόπειο Πανεπιστήμιο 31/49

46 Συνδεδεμένες Λίστες Linked Lists Ορισμός Μία συνδεδεμένη λίστα είναι ένα σύνολο στοιχείων όπου κάθε στοιχείο αποτελεί τμήμα ενός κόμβου (node) ο οποίος περιέχει επίσης ένα σύνδεσμο (link) προς κάποιον κόμβο. Χαροκόπειο Πανεπιστήμιο 31/49

47 Συνδεδεμένες Λίστες Τερματισμός Με μηδενικό σύνδεσμο (null link) NULL Χαροκόπειο Πανεπιστήμιο 32/49

48 Συνδεδεμένες Λίστες Τερματισμός Με ψευδο-κόμβο (dummy node) Χαροκόπειο Πανεπιστήμιο 32/49

49 Συνδεδεμένες Λίστες Τερματισμός Χωρίς τερματισμό, κυκλική λίστα (circular) Χαροκόπειο Πανεπιστήμιο 32/49

50 Διπλά Συνδεδεμένες Λίστες Περιέχουν και σύνδεσμο προς το προηγούμενο στοιχείο της λίστας Χαροκόπειο Πανεπιστήμιο 33/49

51 Χαρακτηριστικά Λιστών προσθήκη, διαγραφή, μετακίνηση σε O(1) χρόνο αναζήτηση k-στού στοιχείου σε O(k) χρόνο καταναλώνουν περισσότερο χώρο από πίνακες, αφού κρατάμε και τους συνδέσμους Χαροκόπειο Πανεπιστήμιο 34/49

52 Προσθήκη σε Λίστα t x Χαροκόπειο Πανεπιστήμιο 35/49

53 Προσθήκη σε Λίστα t x Χαροκόπειο Πανεπιστήμιο 35/49

54 Προσθήκη σε Λίστα t x Χαροκόπειο Πανεπιστήμιο 35/49

55 Διαγραφή από Λίστα x t Χαροκόπειο Πανεπιστήμιο 36/49

56 Διαγραφή από Λίστα x t Χαροκόπειο Πανεπιστήμιο 36/49

57 Διαγραφή από Λίστα x t Χαροκόπειο Πανεπιστήμιο 36/49

58 Αφαίρεση (abstraction) Ανάπτυξη αφηρημένων μοντέλων που διαχωρίζουν την λειτουργία από την υλοποίηση. Για να αναπτύξουμε ένα πολύπλοκο σύστημα (όπως τα σημερινά υπολογιστικά συστήματα) βασιζόμαστε σε στρώσεις αφαίρεσης (layers of abstraction). Χαροκόπειο Πανεπιστήμιο 37/49

59 Στρώσεις αφαίρεσης Παράδειγμα bits από φυσικές ιδιότητες υλικών αφηρημένο μοντέλο μηχανής από τις δυναμικές ιδιότητες των τιμών ενός συνόλου από bits αφηρημένο μοντέλο γλώσσας προγραμματισμού αφηρημένη έννοια αλγορίθμου Χαροκόπειο Πανεπιστήμιο 38/49

60 Αφηρημένος Τύπος Δεδομένων (ΑΤΔ) Abstract Data Type Ορισμός Ένας αφηρημένος τύπος δεδομένων είναι ένας τύπος δεδομένων (ένα σύνολο τιμών και μία συλλογή πράξεων ή λειτουργιών που εφαρμόζονται σε αυτές τις τιμές) ο οποίος μπορεί να προσπελαστεί μόνο μέσω κάποιας διασύνδεσης (interface). Ονομάζουμε πελάτη (client) ένα πρόγραμμα που χρησιμοποιεί κάποιον αφηρημένο τύπο δεδομένων και υλοποίηση (implementation) ένα πρόγραμμα στο οποίο ορίζεται ο τύπος δεδομένων. Χαροκόπειο Πανεπιστήμιο 39/49

61 Αφηρημένος Τύπος Δεδομένων (ΑΤΔ) Abstract Data Type Χρήση μόνο μέσα από την διασύνδεση Μπορούμε να αλλάξουμε ελεύθερα την υλοποίηση Θα δούμε αργότερα παραδείγματα διασύνδεση υλοποίηση Χαροκόπειο Πανεπιστήμιο 40/49

62 Στοίβα ως ΑΤΔ Μία στοίβα ώθησης προς τα κάτω (pushdown stack) είναι ένας ΑΤΔ που περιλαμβάνει τις εξής λειτουργίες: Εισαγωγή (ώθηση) ενός νέου στοιχείου, PUSH(S,x). Διαγραφή (απώθηση, pop) του τελευταίου στοιχείου που προστέθηκε στη στοίβα, POP(S). Έλεγχος κενής στοίβας, EMPTY(S). Επιστροφή του μεγέθους της στοίβας, SIZE(S). Χαροκόπειο Πανεπιστήμιο 41/49

63 Στοίβα Η στοίβα ακολουθεί την αρχή τελευταίο μέσα, πρώτο έξω ή αλλιώς LIFO (last-in, first-out) Push Pop Αφού ορίζουμε μία στοίβα ως ΑΤΔ δεν μας ενδιαφέρει η ακριβής υλοποίηση της στοίβας. Μπορούμε για παράδειγμα να υλοποιήσουμε μια στοίβα με λίστα αλλά και με πίνακα. Χαροκόπειο Πανεπιστήμιο 42/49

64 Παράδειγμα Χρήσης Στοίβας EAS*Y*QUE***ST***IO*N*** τα γράμματα σημαίνουν push() και τα αστεράκια pop() Χαροκόπειο Πανεπιστήμιο 43/49

65 Παράδειγμα Χρήσης Στοίβας EAS*Y*QUE***ST***IO*N*** τα γράμματα σημαίνουν push() και τα αστεράκια pop() E Χαροκόπειο Πανεπιστήμιο 43/49

66 Παράδειγμα Χρήσης Στοίβας EAS*Y*QUE***ST***IO*N*** τα γράμματα σημαίνουν push() και τα αστεράκια pop() A E Χαροκόπειο Πανεπιστήμιο 43/49

67 Παράδειγμα Χρήσης Στοίβας EAS*Y*QUE***ST***IO*N*** τα γράμματα σημαίνουν push() και τα αστεράκια pop() S A E Χαροκόπειο Πανεπιστήμιο 43/49

68 Παράδειγμα Χρήσης Στοίβας EAS*Y*QUE***ST***IO*N*** τα γράμματα σημαίνουν push() και τα αστεράκια pop() A E Χαροκόπειο Πανεπιστήμιο 43/49

69 Παράδειγμα Χρήσης Στοίβας EAS*Y*QUE***ST***IO*N*** τα γράμματα σημαίνουν push() και τα αστεράκια pop() Y A E Χαροκόπειο Πανεπιστήμιο 43/49

70 Παράδειγμα Χρήσης Στοίβας EAS*Y*QUE***ST***IO*N*** τα γράμματα σημαίνουν push() και τα αστεράκια pop() A E Χαροκόπειο Πανεπιστήμιο 43/49

71 Παράδειγμα Χρήσης Στοίβας EAS*Y*QUE***ST***IO*N*** τα γράμματα σημαίνουν push() και τα αστεράκια pop() Q A E Χαροκόπειο Πανεπιστήμιο 43/49

72 Παράδειγμα Χρήσης Στοίβας EAS*Y*QUE***ST***IO*N*** τα γράμματα σημαίνουν push() και τα αστεράκια pop() U Q A E Χαροκόπειο Πανεπιστήμιο 43/49

73 Παράδειγμα Χρήσης Στοίβας EAS*Y*QUE***ST***IO*N*** τα γράμματα σημαίνουν push() και τα αστεράκια pop() E U Q A E Χαροκόπειο Πανεπιστήμιο 43/49

74 Παράδειγμα Χρήσης Στοίβας EAS*Y*QUE***ST***IO*N*** τα γράμματα σημαίνουν push() και τα αστεράκια pop() U Q A E Χαροκόπειο Πανεπιστήμιο 43/49

75 Παράδειγμα Χρήσης Στοίβας EAS*Y*QUE***ST***IO*N*** τα γράμματα σημαίνουν push() και τα αστεράκια pop() Q A E Χαροκόπειο Πανεπιστήμιο 43/49

76 Παράδειγμα Χρήσης Στοίβας EAS*Y*QUE***ST***IO*N*** τα γράμματα σημαίνουν push() και τα αστεράκια pop() A E Χαροκόπειο Πανεπιστήμιο 43/49

77 Παράδειγμα Χρήσης Στοίβας EAS*Y*QUE***ST***IO*N*** τα γράμματα σημαίνουν push() και τα αστεράκια pop() S A E Χαροκόπειο Πανεπιστήμιο 43/49

78 Παράδειγμα Χρήσης Στοίβας EAS*Y*QUE***ST***IO*N*** τα γράμματα σημαίνουν push() και τα αστεράκια pop() T S A E Χαροκόπειο Πανεπιστήμιο 43/49

79 Παράδειγμα Χρήσης Στοίβας EAS*Y*QUE***ST***IO*N*** τα γράμματα σημαίνουν push() και τα αστεράκια pop() S A E Χαροκόπειο Πανεπιστήμιο 43/49

80 Παράδειγμα Χρήσης Στοίβας EAS*Y*QUE***ST***IO*N*** τα γράμματα σημαίνουν push() και τα αστεράκια pop() A E Χαροκόπειο Πανεπιστήμιο 43/49

81 Παράδειγμα Χρήσης Στοίβας EAS*Y*QUE***ST***IO*N*** τα γράμματα σημαίνουν push() και τα αστεράκια pop() E Χαροκόπειο Πανεπιστήμιο 43/49

82 Παράδειγμα Χρήσης Στοίβας EAS*Y*QUE***ST***IO*N*** τα γράμματα σημαίνουν push() και τα αστεράκια pop() I E Χαροκόπειο Πανεπιστήμιο 43/49

83 Παράδειγμα Χρήσης Στοίβας EAS*Y*QUE***ST***IO*N*** τα γράμματα σημαίνουν push() και τα αστεράκια pop() O I E Χαροκόπειο Πανεπιστήμιο 43/49

84 Παράδειγμα Χρήσης Στοίβας EAS*Y*QUE***ST***IO*N*** τα γράμματα σημαίνουν push() και τα αστεράκια pop() I E Χαροκόπειο Πανεπιστήμιο 43/49

85 Παράδειγμα Χρήσης Στοίβας EAS*Y*QUE***ST***IO*N*** τα γράμματα σημαίνουν push() και τα αστεράκια pop() N I E Χαροκόπειο Πανεπιστήμιο 43/49

86 Παράδειγμα Χρήσης Στοίβας EAS*Y*QUE***ST***IO*N*** τα γράμματα σημαίνουν push() και τα αστεράκια pop() I E Χαροκόπειο Πανεπιστήμιο 43/49

87 Παράδειγμα Χρήσης Στοίβας EAS*Y*QUE***ST***IO*N*** τα γράμματα σημαίνουν push() και τα αστεράκια pop() E Χαροκόπειο Πανεπιστήμιο 43/49

88 Παράδειγμα Χρήσης Στοίβας EAS*Y*QUE***ST***IO*N*** τα γράμματα σημαίνουν push() και τα αστεράκια pop() Χαροκόπειο Πανεπιστήμιο 43/49

89 Εφαρμογή Στοίβας Υπολογισμών εκφράσεων (infix notation) Μια σημαντική εφαρμογή της στοίβας είναι ο υπολογισμός αριθμητικών παραστάσεων. π.χ για να υπολογίσουμε την παράσταση 5 (((9 + 8) (4 6)) + 7) πρέπει να έχουμε ένα μηχανισμό αποθήκευσης ενδιάμεσων αποτελεσμάτων. Μία στοίβα είναι ένας ιδανικός μηχανισμός. Χαροκόπειο Πανεπιστήμιο 44/49

90 Εφαρμογή Στοίβας Υπολογισμών Εκφράσεων (infix notation) Για να υπολογίσουμε ενθεματικές (infix) παραστάσεις, θα κάνουμε δύο βήματα:.1 μετατροπή από ενθεματική σε μεταθεματική (postfix) αναπαράσταση.2 υπολογισμός την μεταθεματικής παράστασης Και τα δύο βήματα θα γίνουν με την χρήση στοίβας. Χαροκόπειο Πανεπιστήμιο 45/49

91 Εφαρμογή Στοίβας Μεταθεματική Αναπαράσταση (postfix notation) Η παράσταση 5 (((9 + 8) (4 6)) + 7) γράφεται ως εξής σε postfix Για να επιστρέψουμε σε ενθεματική μορφή αντικαθιστούμε όλες τις εμφανίσεις των όρων a b και a b + με (a b) και (a + b). Χαροκόπειο Πανεπιστήμιο 46/49

92 Εφαρμογή Στοίβας Υπολογισμός Μεταθεματικής Παράστασης (postfix notation) Για να υπολογίσουμε την τιμή μιας μεταθεματικής παράστασης καθώς διαβάζουμε σύμβολα κάνουμε τα εξής: εαν το σύμβολο που διαβάσαμε είναι αριθμός, τον αποθηκεύσουμε μέσα στην στοίβα εαν το σύμβολο είναι πράξη, βγάζουμε δύο στοιχεία από την στοίβα, εκτελούμε την πράξη μεταξύ τους και βάζουμε το αποτέλεσμα στην στοίβα Χαροκόπειο Πανεπιστήμιο 47/49

93 Εφαρμογή Στοίβας Μετατροπή Πλήρους Ενθεματικής σε Μεταθεματική Παράσταση Για να μετατρέψουμε μια πλήρης ενθεματική παράσταση σε μεταθεματική κάνουμε την εξής διαδικασία: ωθούμε τους τελεστές σε μια στοίβα και τους όρους (αριθμούς) στην έξοδο κάθε φορά που βλέπουμε μια δεξιά παρένθεση ), αποθούμε ένα τελεστή από την στοίβα και τον στέλνουμε στην έξοδο Χαροκόπειο Πανεπιστήμιο 48/49

94 Ουρές FIFO πρώτο μέσα, πρώτο έξω (first-in, first-out) Παρόμοια δομή με την στοίβα, με αντίθετο κανόνα διαγραφής. Αφαιρείται το παλιότερο στοιχείο Queue Dequeue Λειτουργεί ακριβώς όπως η ουρά στο ταμείο μιας τράπεζας. Χαροκόπειο Πανεπιστήμιο 49/49

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

Δομές Δεδομένων (Data Structures) Δομές Δεδομένων (Data Structures) Γραμμικές Λίστες Βασικές Έννοιες Βασικές Έννοιες. Αναπαράσταση με τύπο και με δείκτη. Γραμμικές Λίστες. Βασικές Λειτουργίες. Δομές Δεδομένων: Βασικές Έννοιες Αντικείμενο

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

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

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

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

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

Δομές Δεδομένων (Data Structures) Δομές Δεδομένων (Data Structures) Ανάλυση - Απόδοση Αλγορίθμων Έλεγχος Αλγορίθμων. Απόδοση Προγραμμάτων. Χωρική/Χρονική Πολυπλοκότητα. Ασυμπτωτικός Συμβολισμός. Παραδείγματα. Αλγόριθμοι: Βασικές Έννοιες

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

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

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

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

Δομές Δεδομένων. Ενότητα 1 - Εισαγωγή. Χρήστος Γκουμόπουλος. Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων

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

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

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Δυναμική Διαχείριση Μνήμης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2011-2012 Ανάγκη για Δυναμική Μνήμη Στατική Μνήμη Μέχρι τώρα χρησιμοποιούσαμε

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

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

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

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

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

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

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

Δοµές Δεδοµένων. 6η Διάλεξη Αναδροµικές Εξισώσεις και Αφηρηµένοι Τύποι Δεδοµένων. Ε. Μαρκάκης

Δοµές Δεδοµένων. 6η Διάλεξη Αναδροµικές Εξισώσεις και Αφηρηµένοι Τύποι Δεδοµένων. Ε. Μαρκάκης Δοµές Δεδοµένων 6η Διάλεξη Αναδροµικές Εξισώσεις και Αφηρηµένοι Τύποι Δεδοµένων Ε. Μαρκάκης Περίληψη Χρήση αναδροµικών εξισώσεων στην ανάλυση αλγορίθµων Αφηρηµένοι τύποι δεδοµένων Συλλογές στοιχείων Στοίβα

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

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

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

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

Τι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές

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

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

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

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

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

Τύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( )

Τύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( ) Τύποι Δεδομένων και Απλές Δομές Δεδομένων Παύλος Εφραιμίδης V1.0 (2014-01-13) Απλές Δομές Δεδομένων Στην ενότητα αυτή θα γνωρίσουμε ορισμένες απλές Δομές Δεδομένων και θα τις χρησιμοποιήσουμε για την αποδοτική

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

Α Ν Α Λ Τ Η Α Λ Γ Ο Ρ Ι Θ Μ Ω Ν Κ Ε Υ Α Λ Α Ι Ο 5. Πως υπολογίζεται ο χρόνος εκτέλεσης ενός αλγορίθμου;

Α Ν Α Λ Τ Η Α Λ Γ Ο Ρ Ι Θ Μ Ω Ν Κ Ε Υ Α Λ Α Ι Ο 5. Πως υπολογίζεται ο χρόνος εκτέλεσης ενός αλγορίθμου; 5.1 Επίδοση αλγορίθμων Μέχρι τώρα έχουμε γνωρίσει διάφορους αλγόριθμους (αναζήτησης, ταξινόμησης, κ.α.). Στο σημείο αυτό θα παρουσιάσουμε ένα τρόπο εκτίμησης της επίδοσης (performance) η της αποδοτικότητας

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

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

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

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

Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών

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

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

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

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου, Τμήμα Μηχανικών Πληροφορικής ΤΕ Χειμερινό Εξάμηνο 2014-2015 (Παρουσίαση 6) 1 / 20 Ρυθμοί αύξησης Γραμμικός ρυθμός αύξησης: n, 2n, Πολυωνυμικός

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

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

Αλγόριθμοι και Πολυπλοκότητα Αλγόριθμοι και Πολυπλοκότητα Εισαγωγή Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Βιβλιογραφία Jon Kleinberg και Éva Tardos, Σχεδιασμός αλγορίθμων, Εκδόσεις Κλειδάριθμος,

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

Εισαγωγή στον Προγραμματισμό

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

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

Εισαγωγή στην Ανάλυση Αλγορίθμων (2-3)

Εισαγωγή στην Ανάλυση Αλγορίθμων (2-3) Εισαγωγή στην Ανάλυση Αλγορίθμων (2-3) 3.1 Ασυμπτωτικός συμβολισμός (Ι) Οι ορισμοί που ακολουθούν μας επιτρέπουν να επιχειρηματολογούμε με ακρίβεια για την ασυμπτωτική συμπεριφορά. Οι f(n) και g(n) συμβολίζουν

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

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

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

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

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

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

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

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

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

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

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ Διάλεξη 8: Αφηρημένοι Τύποι Δεδομένων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Αφηρημένοι Τύποι Δεδομένων (ΑΤΔ) Οι ΑΤΔ Στοίβα και Ουρά Υλοποίηση των ΑΤΔ Στοίβα και Ουρά με Στατική Δέσμευση

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

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

Δομές Δεδομένων (Data Structures) Δομές Δεδομένων (Data Structures) 3 ο Εξάμηνο Σπουδών Εαρινό Εξάμηνο 2010/11 Διδάσκων: Χαρμανδάρης Ευάγγελος, Τμήμα Εφαρμοσμένων Μαθηματικών, Πανεπιστήμιο Κρήτης email: vagelis@tem.uoc.gr, Ιστοσελίδα Μαθήματος:

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

Προγραμματισμός Ι. Δείκτες. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

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

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

Συλλογές, Στοίβες και Ουρές

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

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

Ορισµός. Εστω συναρτήσεις: f : N R και g : N R. η f(n) είναι fi( g(n) ) αν υπάρχουν σταθερές C 1, C 2 και n 0, τέτοιες ώστε:

Ορισµός. Εστω συναρτήσεις: f : N R και g : N R. η f(n) είναι fi( g(n) ) αν υπάρχουν σταθερές C 1, C 2 και n 0, τέτοιες ώστε: Συµβολισµός Ω( ) Τάξη των Συναρτήσεων () Εκτίµηση Πολυπλοκότητας Αλγορίθµων Ορέστης Τελέλης telelis@unipi.gr Ορισµός. Εστω συναρτήσεις: f : N R και g : N R η f(n) είναι Ω( g(n) ) αν υπάρχουν σταθερές C

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

Κεφάλαιο 5 Ανάλυση Αλγορίθμων

Κεφάλαιο 5 Ανάλυση Αλγορίθμων Κεφάλαιο 5 Ανάλυση Αλγορίθμων 5.1 Επίδοση αλγορίθμων Τα πρωταρχικά ερωτήματα που προκύπτουν είναι: 1. πώς υπολογίζεται ο χρόνος εκτέλεσης ενός αλγορίθμου; 2. πώς μπορούν να συγκριθούν μεταξύ τους οι διάφοροι

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

Στοίβες με Δυναμική Δέσμευση Μνήμης

Στοίβες με Δυναμική Δέσμευση Μνήμης ΕΠΛ 231 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ 10/02/10 Παύλος Αντωνίου Στοίβες με Δυναμική Δέσμευση Μνήμης Στοίβα: Στοίβα είναι μια λίστα που έχει ένα επιπλέον περιορισμό. Ο περιορισμός είναι ότι οι εισαγωγές

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

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

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

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

Δομές Δεδομένων Ενότητα 2

Δομές Δεδομένων Ενότητα 2 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 2: Θέματα Απόδοσης Απόστολος Παπαδόπουλος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

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

Διακριτά Μαθηματικά [Rosen, κεφ. 3] Γιάννης Εμίρης Τμήμα Πληροφορικής & Τηλεπικοινωνιών, ΕΚΠΑ Οκτώβριος 2018

Διακριτά Μαθηματικά [Rosen, κεφ. 3] Γιάννης Εμίρης Τμήμα Πληροφορικής & Τηλεπικοινωνιών, ΕΚΠΑ Οκτώβριος 2018 Διακριτά Μαθηματικά [Rosen, κεφ. 3] Γιάννης Εμίρης Τμήμα Πληροφορικής & Τηλεπικοινωνιών, ΕΚΠΑ Οκτώβριος 2018 Αλγόριθμοι Ρυθμός αύξησης συναρτήσεων [Rosen 3.2] Αριθμητικές συναρτήσεις Τάξη αριθμητικών συναρτήσεων

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

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

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

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

Εισαγωγή στους Αλγόριθμους. Παύλος Εφραιμίδης, Λέκτορας

Εισαγωγή στους Αλγόριθμους. Παύλος Εφραιμίδης, Λέκτορας Εισαγωγή στους Αλγόριθμους Παύλος Εφραιμίδης, Λέκτορας http://pericles.ee.duth.gr 1 Περιεχόμενα Μαθήματος Εισαγωγή στου Αλγόριθμους Πολυπλοκότητα Αλγορίθμων Ασυμπτωτική Ανάλυση Θεωρία Γράφων Κλάσεις Πολυπλοκότητας

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

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

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

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

Διαδικασιακός Προγραμματισμός

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 7 η Πίνακες Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή Σωτήρης Χριστοδούλου

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

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

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

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

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

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

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

Δομές Δεδομένων. Λουκάς Γεωργιάδης. http://www.cs.uoi.gr/~loukas/courses/data_structures/ email: loukas@cs.uoi.gr

Δομές Δεδομένων. Λουκάς Γεωργιάδης. http://www.cs.uoi.gr/~loukas/courses/data_structures/ email: loukas@cs.uoi.gr Δομές Δεδομένων http://www.cs.uoi.gr/~loukas/courses/data_structures/ Λουκάς Γεωργιάδης email: loukas@cs.uoi.gr Αλγόριθμος: Μέθοδος για την επίλυση ενός προβλήματος Δεδομένα: Σύνολο από πληροφορίες που

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

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

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

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

Standard Template Library (STL) C++ library

Standard Template Library (STL) C++ library Τ Μ Η Μ Α Μ Η Χ Α Ν Ι Κ Ω Ν Η / Υ Κ Α Ι Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ Standard Template Library (STL) C++ library Δομές Δεδομένων Μάριος Κενδέα kendea@ceid.upatras.gr Εισαγωγή Η Standard Βιβλιοθήκη προτύπων

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

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

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

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

Ασυμπτωτικός Συμβολισμός

Ασυμπτωτικός Συμβολισμός Ασυμπτωτικός Συμβολισμός Επιμέλεια διαφανειών: Δημήτρης Φωτάκης (λίγες προσθήκες: Άρης Παγουρτζής) Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Υπολογιστική Πολυπλοκότητα

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

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Ψευδοτυχαίοι Αριθμοί Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Ψευδοτυχαίοι Αριθμοί Μια γεννήτρια ψευδοτυχαίων αριθμών είναι

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

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 Δοµές Δεδοµένων Ι Στην ενότητα αυτή θα γνωρίσουµε ορισµένες Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε

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

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

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

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

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

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

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

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

ΕΠΛ 231 Δομές Δεδομένων και Αλγόριθμοι 4-1 Εφαρμογές στοιβών Στην ενότητα αυτή θα μελετηθεί η χρήση στοιβών στις εξής εφαρμογές: Αναδρομικές συναρτήσεις Ισοζυγισμός Παρενθέσεων Αντίστροφος Πολωνικός Συμβολισμός ΕΠΛ 231 Δομές Δεδομένων και Αλγόριθμοι

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

Ορθότητα Χωρική αποδοτικότητα. Βελτιστότητα. Θεωρητική ανάλυση Εμπειρική ανάλυση. Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1

Ορθότητα Χωρική αποδοτικότητα. Βελτιστότητα. Θεωρητική ανάλυση Εμπειρική ανάλυση. Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1 Ανάλυση Αλγορίθμων Θέματα Θέματα: Ορθότητα Χρονική αποδοτικότητα Χωρική αποδοτικότητα Βελτιστότητα Προσεγγίσεις: Θεωρητική ανάλυση Εμπειρική ανάλυση Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1 Θεωρητική

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

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

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

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

Περιεχόμενα. Περιεχόμενα

Περιεχόμενα. Περιεχόμενα Περιεχόμενα xv Περιεχόμενα 1 Αρχές της Java... 1 1.1 Προκαταρκτικά: Κλάσεις, Τύποι και Αντικείμενα... 2 1.1.1 Βασικοί Τύποι... 5 1.1.2 Αντικείμενα... 7 1.1.3 Τύποι Enum... 14 1.2 Μέθοδοι... 15 1.3 Εκφράσεις...

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

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

Δομές Δεδομένων & Αλγόριθμοι Θέματα Απόδοσης Αλγορίθμων 1 Η Ανάγκη για Δομές Δεδομένων Οι δομές δεδομένων οργανώνουν τα δεδομένα πιο αποδοτικά προγράμματα Πιο ισχυροί υπολογιστές πιο σύνθετες εφαρμογές Οι πιο σύνθετες εφαρμογές απαιτούν

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

Ασυμπτωτικός Συμβολισμός

Ασυμπτωτικός Συμβολισμός Ασυμπτωτικός Συμβολισμός ιδάσκοντες: Φ. Αφράτη,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Υπολογιστική Πολυπλοκότητα Υπολογιστική

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

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 3. Στοίβες & Ουρές 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 19/10/2017 Ανακεφαλαίωση:

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

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

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

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

Κεφάλαιο 2. Η δομή δεδομένων Σωρός και η Ταξινόμηση Σωρού (The Heap data structure and Heapsort) Έκδοση 1.3, 14/11/2014

Κεφάλαιο 2. Η δομή δεδομένων Σωρός και η Ταξινόμηση Σωρού (The Heap data structure and Heapsort) Έκδοση 1.3, 14/11/2014 Κεφάλαιο 2 Η δομή δεδομένων Σωρός και η Ταξινόμηση Σωρού (The Heap data structure and Heapsort) Έκδοση 1.3, 14/11/2014 Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. 1 Σωρός και Ταξινόμηση

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

Κεφάλαιο 6 Ουρές Προτεραιότητας

Κεφάλαιο 6 Ουρές Προτεραιότητας Κεφάλαιο 6 Ουρές Προτεραιότητας Περιεχόμενα 6.1 Ο αφηρημένος τύπος δεδομένων ουράς προτεραιότητας... 114 6.2 Ουρές προτεραιότητας με στοιχειώδεις δομές δεδομένων... 115 6.3 Δυαδικός σωρός... 116 6.3.1

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

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι Εισαγωγή Στον Προγραµµατισµό «C» Πίνακες Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Πίνακες στη C Ένας πίνακας στη C είναι

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

Δομές Δεδομένων Standard Template Library (STL) 23/3/2017 ΜΠΟΜΠΟΤΑΣ ΑΓΟΡΑΚΗΣ

Δομές Δεδομένων Standard Template Library (STL) 23/3/2017 ΜΠΟΜΠΟΤΑΣ ΑΓΟΡΑΚΗΣ Δομές Δεδομένων Standard Template Library (STL) 23/3/2017 ΜΠΟΜΠΟΤΑΣ ΑΓΟΡΑΚΗΣ mpompotas@ceid.upatras.gr Εισαγωγή - STL Η Standard Βιβλιοθήκη προτύπων (STL) είναι μια βιβλιοθήκη λογισμικού για την C++ Δημιουργήθηκε

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

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

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

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο ΚΕΦΑΛΑΙΟ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ 1 ο ΚΕΦΑΛΑΙΟ 1) Τι είναι πρόβλημα (σελ. 3) 2) Τι είναι δεδομένο, πληροφορία, επεξεργασία δεδομένων (σελ. 8) 3) Τι είναι δομή ενός προβλήματος (σελ. 8)

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

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

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

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

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL 8.1. Εισαγωγή ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PACAL Πως προέκυψε η γλώσσα προγραμματισμού Pascal και ποια είναι τα γενικά της χαρακτηριστικά; Σχεδιάστηκε από τον Ελβετό επιστήμονα της Πληροφορικής Nicklaus Wirth to

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

Υπολογιστική Πολυπλοκότητα

Υπολογιστική Πολυπλοκότητα Υπολογιστική Πολυπλοκότητα Υπολογιστική πολυπλοκότητα αλγόριθµου Α: Ποσότητα υπολογιστικών πόρων που απαιτεί Α ως αύξουσα συνάρτηση µεγέθους στιγµιότυπου εισόδου. Χρόνος, µνήµη, επεξεργαστές, επικοινωνία,

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

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος. 1. Δώστε τον ορισμό του προβλήματος. 2. Σι εννοούμε με τον όρο επίλυση ενός προβλήματος; 3. Σο πρόβλημα του 2000. 4. Σι εννοούμε με τον όρο κατανόηση προβλήματος; 5. Σι ονομάζουμε χώρο προβλήματος; 6.

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

οµές εδοµένων 3 ο Εξάµηνο Τµήµα Πανεπιστήµιο Πληροφορικής Ιωαννίνων ΟΜΕΣ Ε ΟΜΕΝΩΝ

οµές εδοµένων 3 ο Εξάµηνο Τµήµα Πανεπιστήµιο Πληροφορικής Ιωαννίνων ΟΜΕΣ Ε ΟΜΕΝΩΝ Τµήµα Πανεπιστήµιο Πληροφορικής Ιωαννίνων ΟΜΕΣ Ε ΟΜΕΝΩΝ ΕΝΟΤΗΤΑ 1 ΕΙΣΑΓΩΓΗ 1 εδοµένα Σύνολο από πληροφορίες που πρέπει να αποθηκευτούν σε έναν υπολογιστή Υπολογιστικό Μοντέλο ένας επεξεργαστής και µεγάλος

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

Κεφάλαιο 13 Αντισταθμιστική Ανάλυση

Κεφάλαιο 13 Αντισταθμιστική Ανάλυση Κεφάλαιο 13 Αντισταθμιστική Ανάλυση Περιεχόμενα 13.1 Αντισταθμιστική Ανάλυση... 248 13.2 Μέθοδοι Αντισταθμιστικής Ανάλυσης... 250 13.2.1 Η χρεωπιστωτική μέθοδος... 250 13.2.2 Η ενεργειακή μέθοδος... 251

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

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

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

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

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

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

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

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

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

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

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Αρχές Ανάλυσης Αλγορίθµων Κεφάλαιο 2. Ε. Μαρκάκης Επικ. Καθηγητής

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Αρχές Ανάλυσης Αλγορίθµων Κεφάλαιο 2. Ε. Μαρκάκης Επικ. Καθηγητής ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Αρχές Ανάλυσης Αλγορίθµων Κεφάλαιο 2 Ε. Μαρκάκης Επικ. Καθηγητής Περίληψη Εµπειρική ανάλυση αλγορίθµων Μαθηµατική ανάλυση αλγορίθµων Αύξηση συναρτήσεων Συµβολισµός µεγάλου όµικρον Παραδείγµατα

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

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

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

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

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

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

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές Μαθήματα από το lab Υπενθύμιση: Η άσκηση ζητούσε να υλοποιήσετε μία κλάση vector που να διαχειρίζεται διανύσματα οποιουδήποτε

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

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

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

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

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

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

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

Διαδικασιακός Προγραμματισμός

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 4 η Τελεστές Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή Σωτήρης

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

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

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

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

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

ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου, Εφαρµογές στοιβών Στην ενότητα αυτή θα µελετηθεί η χρήση στοιβών στις εξής εφαρµογές: Αναδροµικές συναρτήσεις Ισοζυγισµός Παρενθέσεων Αντίστροφος Πολωνικός Συµβολισµός ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι

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

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

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

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

Επιλογές και Κριτήρια Σχεδιασμού ΑΤΔ Ανεξαρτήτως από Γλώσσα Υλοποίησης 24/4/2012

Επιλογές και Κριτήρια Σχεδιασμού ΑΤΔ Ανεξαρτήτως από Γλώσσα Υλοποίησης 24/4/2012 Επιλογές και Κριτήρια Σχεδιασμού ΑΤΔ Ανεξαρτήτως από Γλώσσα Υλοποίησης 24/4/2012 Κύκλος (Ζωής) Λογισμικού (ΑΤΔ) Γενικά Ορισμός ΑΤΔ (Προδιαγραφές) Οργάνωση Δεδομένων Τι κάνει Υλοποίηση Σχεδιασμός (ανεξάρτητος

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

Διαδικασιακός Προγραμματισμός

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 8 η Δείκτες Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή Σωτήρης Χριστοδούλου

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

ΑΕΠΠ Ερωτήσεις θεωρίας

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

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

Επιλέξτε Σωστό ή Λάθος για καθένα από τα παρακάτω:

Επιλέξτε Σωστό ή Λάθος για καθένα από τα παρακάτω: Επιλέξτε Σωστό ή Λάθος για καθένα από τα παρακάτω: 1ο ΓΕΛ Καστοριάς Βασικές Έννοιες Αλγορίθμων Δομή Ακολουθίας (κεφ. 2 και 7 σχολικού βιβλίου) 1. Οι μεταβλητές αντιστοιχίζονται από τον μεταγλωττιστή κάθε

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

Ασυμπτωτικός Συμβολισμός

Ασυμπτωτικός Συμβολισμός Ασυμπτωτικός Συμβολισμός ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Υπολογιστική Πολυπλοκότητα Υπολογιστική πολυπλοκότητα αλγόριθμου Α: Ποσότητα

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

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

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 14 Στοίβες 1 / 14 Στοίβες Η στοίβα είναι μια ειδική περίπτωση γραμμικής λίστας στην οποία οι εισαγωγές

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

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

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

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

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

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

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

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ Η ΓΛΩΣΣΑ PASCAL ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ Απλοί ή στοιχειώδης Τ.Δ. Ακέραιος τύπος Πραγματικός τύπος Λογικός τύπος Χαρακτήρας Σύνθετοι Τ.Δ. Αλφαριθμητικός 1. Ακέραιος (integer) Εύρος: -32768 έως 32767 Δήλωση

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

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

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

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

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

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

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

Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος Κων/νος Φλώρος

Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος Κων/νος Φλώρος Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος 2012-13 Κων/νος Φλώρος Απλοί τύποι δεδομένων Οι τύποι δεδομένων προσδιορίζουν τον τρόπο παράστασης των

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

Διάλεξη 9: Αφηρημένοι Τύποι Δεδομένων. Διδάσκων: Παναγιώτης Ανδρέου

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

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

Εισαγωγή στην Ανάλυση Αλγορίθμων (1) Διαφάνειες του Γ. Χ. Στεφανίδη

Εισαγωγή στην Ανάλυση Αλγορίθμων (1) Διαφάνειες του Γ. Χ. Στεφανίδη Εισαγωγή στην Ανάλυση Αλγορίθμων (1) Διαφάνειες του Γ. Χ. Στεφανίδη 0. Εισαγωγή Αντικείμενο μαθήματος: Η θεωρητική μελέτη ανάλυσης των αλγορίθμων. Στόχος: επιδόσεις των επαναληπτικών και αναδρομικών αλγορίθμων.

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

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

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

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

Διάλεξη 11: Φροντιστήριο για Στοίβες. Διδάσκων: Παναγιώτης Ανδρέου. ΕΠΛ035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ.

Διάλεξη 11: Φροντιστήριο για Στοίβες. Διδάσκων: Παναγιώτης Ανδρέου. ΕΠΛ035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. Διάλεξη 11: Φροντιστήριο για Στοίβες Διδάσκων: Παναγιώτης Ανδρέου ΕΠΛ035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 1 ΑΤΔ Στοίβα- Πράξεις Θυμηθείτε τον ΑΤΔ στοίβα με τις πράξεις του: MakeEmptyStack()

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

Αν ένα πρόβλημα λύνεται από δύο ή περισσότερους αλγόριθμους, ποιος θα είναι ο καλύτερος; Με ποια κριτήρια θα τους συγκρίνουμε;

Αν ένα πρόβλημα λύνεται από δύο ή περισσότερους αλγόριθμους, ποιος θα είναι ο καλύτερος; Με ποια κριτήρια θα τους συγκρίνουμε; Αν ένα πρόβλημα λύνεται από δύο ή περισσότερους αλγόριθμους, ποιος θα είναι ο καλύτερος; Με ποια κριτήρια θα τους συγκρίνουμε; Πως θα υπολογίσουμε το χρόνο εκτέλεσης ενός αλγόριθμου; Για να απαντήσουμε

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

Εντολές γλώσσας μηχανής

Εντολές γλώσσας μηχανής Εντολές γλώσσας μηχανής Στον υπολογιστή MIPS η εντολή πρόσθεσε τα περιεχόμενα των καταχωρητών 17 και 20 και τοποθέτησε το αποτέλεσμα στον καταχωρητή 9 έχει την μορφή: 00000010001101000100100000100000 Πεδία

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