Δομές Δεδομένων & Αλγόριθμοι. Στοίβες. Εργαστήριο Γνώσης & Ευφυούς Πληροφορικής 1
|
|
- Καλλιγένεια Αναγνώστου
- 7 χρόνια πριν
- Προβολές:
Transcript
1 Στοίβες Πληροφορικής 1
2 Περίληψη Ο Αφηρημένος Τύπος Δεδομένων (ΑΔΤ) : στοίβα Εφαρμογές στοίβας Υλοποίηση βασισμένη σε πίνακα Αυξανόμενη Στοίβα βασισμένη σε πίνακα Infix to Postfix Πληροφορικής 2
3 Αφηρημένος Τύπος Δεδομένων ΑΤΔ Abstract Data Types (ADTs) Ένας ΑΤΔ είναι μια αφαίρεση μιας δομής δεδομένων Ένας ΑΤΔ ορίζει: Αποθηκευμένα δεδομένα Λειτουργίες πάνω στα δεδομένα Συνθήκες λαθών σχετικές με τις λειτουργίες Παράδειγμα: ΑΤΔ μοντελοποίηση απλού χρηματιστηριακού συστήματος Τα δεδομένα είναι buy/sell εντολές Οι υποστηριζόμενες λειτουργίες είναι order buy(stock, shares, price) order sell(stock, shares, price) void cancel(order) Συνθήκες λαθών : Buy/sell μια μη υπάρχουσα μετοχή Ακύρωση μη υπάρχουσας εντολής Πληροφορικής 3
4 Η στοίβα ΑΤΔ O ΑΤΔ στοίβα αποθηκεύει αυθαίρετα αντικείμενα Οι εισαγωγές και διαγραφές ακολουθούν το last-in first-out μοντέλο Βασικές λειτουργίες της στοίβας: push(object o): εισάγει το στοιχείο o pop(): αφαιρεί και επιστρέφει το τελευταία εισηγμένο στοιχείο Βοηθητικές λειτουργίες της στοίβας: top(): επιστρέφει το τελευταία εισηγμένο στοιχείο χωρίς να το αφαιρεί size(): επιστρέφει τον αριθμό τον αποθηκευμένων στοιχείων isempty(): Boolean τιμή που δείχνει αν υπάρχουν αποθηκευμένα στοιχεία Πληροφορικής 4
5 Εξαιρέσεις (Exceptions) Η απόπειρα εκτέλεσης μιας λειτουργίας σε ADT μπορεί να προκαλέσει συνθήκες λαθών, που ονομάζονται exceptions Οι Exceptions λέγεται ότι γίνονται thrown από μια λειτουργία που δεν μπορεί να εκτελεστεί Στη στοίβα ΑΤΔ, οι λειτουργίες pop και top δεν μπορούν να εκτελεστούν αν η στοίβα είναι άδεια Η απόπειρα εκτέλεσης της pop ή top σε άδεια στοίβα προκαλεί την EmptyStackException Πληροφορικής 5
6 Εφαρμογές της Στοίβας Άμεσες εφαρμογές Ιστορικό σελίδων σε Web browser Ακολουθία undo σε επεξεργαστή κειμένου Έμμεσες εφαρμογές Βοηθητική δομή δεδομένων για αλγόριθμους Συστατικό άλλων δομών δεδομένων Πληροφορικής 6
7 C++ Run-time Στοίβα Το C++ run-time system καταγράφει την αλυσίδα των ενεργών συναρτήσεων στη στοίβα Όταν μια συνάρτηση καλείται, το runtime system σπρώχνει στη στοίβα ένα πλαίσιο που περιέχει Τοπικές μεταβλητές και τιμή επιστροφής Program counter, που καταγράφει την εντολή που εκτελείται Όταν μια συνάρτηση επιστρέφει, το πλαίσιό της αφαιρείται από τη στοίβα και ο έλεγχος περνάει στην μέθοδο στην κορυφή της στοίβας main() { int i 5; foo(i); } foo(int j) { int k; k j+1; bar(k); } bar(int m) { } bar PC 1 m 6 foo PC 3 j 5 k 6 main PC 2 i 5 Πληροφορικής 7
8 Στοίβα Βασισμένη σε Πίνακα Ένας απλός τρόπος για την υλοποίηση ADT στοίβας με χρήση πινάκων Προσθέτουμε στοιχεία από αριστερά προς τα δεξιά Μια μεταβλητή καταγράφει τον δείκτη του κορυφαίου στοιχείου Algorithm size() return t + 1 Algorithm pop() if isempty() then throw EmptyStackException else t t 1 return S[t + 1] S t Πληροφορικής 8
9 Βασισμένη σε Πίνακα Στοίβα (συνέχεια) Ο πίνακας που περιέχει τα στοιχεία της στοίβας μπορεί να γεμίσει Μια push εντολή θα προκαλέσει τότε μια FullStackException Περιορισμός της υλοποίησης σε πίνακα Algorithm push(o) if t S.length 1 then throw FullStackException else t t + 1 S[t] o S t Πληροφορικής 9
10 Απόδοση και Περιορισμοί Απόδοση Έστω n ο αριθμός των στοιχείων στη στοίβα Ο χώρος που χρησιμοποιείται είναι O(n) Κάθε λειτουργία εκτελείται σε χρόνο O(1) Περιορισμοί Το μέγιστο μέγεθος της στοίβας πρέπει να οριστεί a priori, και δεν μπορεί να αλλάξει Η απόπειρα εισαγωγής νέου στοιχείου σε γεμάτη στοίβα προκαλεί exception Πληροφορικής 10
11 Computing Spans Δείχνουμε πως χρησιμοποιείται μια στοίβα σαν βοηθητική δομή δεδομένων σε αλγόριθμο Δεδομένου πίνακα X, το span S[i] του X[i] είναι ο μέγιστος αριθμός συνεχών στοιχείων X[j] που προηγούνται άμεσα του X[i] και τέτοια ώστε X[j] X[i] Εφαρμογή σε οικονομική ανάλυση Π.χ., μετοχή σε 52-week high X S Πληροφορικής 11
12 Τετραγωνικός Αλγόριθμος (Quadratic) Algorithm spans1(x, n) Input array X of n integers Output array S of spans of X # S new array of n integers n for i 0 to n 1 do n s 1 n while s i X[i s] X[i] 1 2 (n 1) s s (n 1) S[i] s n return S 1 Ο αλγόριθμος spans1 εκτελείται σε χρόνο O(n 2 ) Πληροφορικής 12
13 Υπολογισμός Spans με Στοίβα Κρατάμε στη στοίβα τους δείκτες των ορατών στοιχείων όταν «κοιτάμε πίσω» Σκανάρουμε τον πίνακα από αριστερά προς τα δεξιά Έστω i ο τρέχον δείκτης Αφαιρούμε δείκτες από την στοίβα μέχρι να βρούμε δείκτη j τέτοιο ώστε X[i] X[j] Θέτουμε S[i] i j Προσθέτουμε το x στην στοίβα Πληροφορικής 13
14 Γραμμικός Αλγόριθμος Κάθε δείκτης του πίνακα Προστίθεται στην στοίβα ακριβώς μια φορά Αφαιρείται από την στοίβα το πολύ μια φορά Οι δηλώσεις στο whileloop εκτελούνται το πολύ n φορές Ο αλγόριθμος spans2 εκτελείται σε χρόνο O(n) Algorithm spans2(x, n) # S new array of n integers n A new empty stack 1 for i 0 to n 1 do n while ( A.isEmpty() X[top()] X[i] ) do n j A.pop() n if A.isEmpty() then n S[i] i 1 n else S[i] i j n A.push(i) n return S 1 Πληροφορικής 14
15 Επεκτεινόμενη Στοίβα Βασισμένη σε πίνακα Σε μια push λειτουργία, όταν ο πίνακας είναι γεμάτος, αντί για δημιουργία exception, μπορούμε να αντικαταστήσουμε τον πίνακα με έναν μεγαλύτερο Πόσο μεγάλος πρέπει να είναι ο νέος πίνακας; αυξητική στρατηγική: αύξηση μεγέθους με σταθερά c στρατηγική διπλασιασμού: διπλασιασμός του μεγέθους Algorithm push(o) if t S.length 1 then A new array of size for i 0 to t do A[i] S[i] S A t t + 1 S[t] o Πληροφορικής 15
16 Σύγκριση Στρατηγικών Συγκρίνουμε την αυξητική στρατηγική και την στρατηγική διπλασιασμού αναλύοντας τον συνολικό χρόνο T(n) που χρειάζεται για να εκτελεστεί μια σειρά από n λειτουργίες push Υποθέτουμε ότι ξεκινάμε με μια άδεια στοίβα που αναπαριστάται με πίνακα μεγέθους 1 Ονομάζουμε αποσβενούμενο χρόνο μίας push λειτουργίας τον μέσο χρόνο T(n)/n Πληροφορικής 16
17 Ανάλυση της Στρατηγικής Διπλασιασμού Αντικαθιστούμε τον πίνακα k log 2 n φορές Ο συνολικός χρόνος T(n) μιας σειράς από n push λειτουργίες είναι ανάλογος με n k n 2 k n 1 T(n) είναι O(n) Ο αποσβενούμενος χρόνος της push λειτουργίας είναι O(1) γεωμετρική σειρά Πληροφορικής 17
18 Ανάλυση της Αυξητικής Στρατηγικής Αντικαθιστούμε τον πίνακα k n/c φορές Ο συνολικός χρόνος T(n) μιας σειράς από n push λειτουργίες είναι ανάλογος με n + c + 2c + 3c + 4c + + kc n + c( k) n + ck(k + 1)/2 Αφού το c είναι σταθερά, ο T(n) είναι O(n + k 2 ), π.χ., O(n 2 ) Ο αποσβενούμενος χρόνος της push λειτουργίας είναι O(n) Πληροφορικής 18
19 Λογιστική Ανάλυση της Στρατηγικής Διπλασιασμού Η λογιστική μέθοδος (accounting method) καθορίζει τον αποσβενούμενο τρέχοντα χρόνο με ένα σύστημα πιστώσεων και χρεώσεων Θεωρούμε τον υπολογιστή σαν μία coin-operated συσκευή που απαιτεί ένα 1 cyber-ευρώ για ένα σταθερό ποσό υπολογισμού. Δημιουργούμε ένα σχήμα για να χρεώνονται οι λειτουργίες, γνωστό ώς σχήμα απόσβεσης. Το σχήμα πρέπει να δίνει συνεχώς αρκετά λεφτά για να πληρώνουμε το κόστος της λειτουργίας. Το συνολικό κόστος μιας σειράς λειτουργιών δεν είναι μεγαλύτερο από το συνολικό ποσό που χρεώνεται. (χρόνος απόσβεσης) (σύνολο Ευρώ / (# λειτουργιών) Πληροφορικής 19
20 Σχήμα Απόσβεσης για την Στρατηγική Διπλασιασμού Θεωρούμε ξανά k φάσεις, όπου κάθε φάση αποτελείται από τα διπλάσια pushes από την προηγούμενη. Στο τέλος μιας φάσης πρέπει να έχουμε αρκετά για να πληρώσουμε για το push της επόμενης φάσης. Στο τέλος της φάσης i θέλουμε να έχουμε κρατήσει i cyber-ευρώ, για να πληρώσουμε για την αύξηση του πίνακα για το ξεκίνημα της επόμενης φάσης. $ $ $ $ $ $ $ $ $ $ Χρεώνουμε 3ευρώγια ένα push. Τα 2Ευρώπου κρατάμε για ένα κανονικό push φυλάσσονται στο δεύτερο μισό του πίνακα. Συνεπώς θα έχουμε 2(i/2)i cyber-ευρώ στο τέλος της φάσης i. Άρα, κάθε push τρέχει σε O(1) χρόνο απόσβεσης. Τα n pushes τρέχουν σε O(n) χρόνο. Πληροφορικής 20
21 Διεπαφή Στοίβας (Stack Interface) στη C++ Διεπαφή που αντιστοιχεί στην ADT Στοίβα Απαιτεί τον ορισμό της κλάσης EmptyStackException Παρόμοια κατασκευή είναι το άνυσμα (vector) template <typename Object> class Stack { public: int size(); bool isempty(); Object& top() throw(emptystackexception); void push(object o); Object pop() throw(emptystackexception); }; Πληροφορικής 21
22 Στοίβα βασισμένη σε Πίνακα στη C++ template <typename Object> class ArrayStack { private: int capacity; // stack capacity Object *S; // stack array int top; // top of stack public: ArrayStack(int c) { capacity c; S new Object[capacity]; t 1; } bool isempty() { return (t < 0); } Object pop() throw(emptystackexception) { if(isempty()) throw EmptyStackException ( Access to empty stack ); return S[t--]; } // (other functions omitted) Πληροφορικής 22
23 Στοίβα (stack)- Συνοπτικά Δομή τύπου LIFO: Last In - First Out (τελευταία εισαγωγή πρώτη εξαγωγή) Περιορισμένος τύπος γραμμικής λίστας: Εισαγωγή και διαγραφή μόνο στο ένα άκρο της λίστας (στην αρχή) AbstractDataType Stack { instances ordered list of elements; one end is called the bottom; the other is the top; operations Create (): create an empty stack; IsEmpty (): return true if stack is empty, return false otherwise; Top (): return top element of stack; Add (x): add element x to the stack; Delete (x): delete top element from stack and put it in x; } Πληροφορικής 23
24 Εφαρμογή Στοίβας Υπολογισμός της ΕΠΙΘΕΜΑΤΙΚΗΣ μορφής μίας αλγεβρικής έκφρασης από την ΕΝΔΟΘΕΜΑΤΙΚΗ μορφή. ΕΠΙΘΕΜΑΤΙΚΗ POSTFIX ΕΝΔΟΘΕΜΑΤΙΚΗ INFIX Στην ενδοθεματική μορφή αναπαράστασης αλγεβρικών εκφράσεων ο μοναδικός τελεστής τίθεται πριν από τη μεταβλητή ενώ ο δυαδικός τελεστής τίθεται μεταξύ των δύο μεταβλητών. Πληροφορικής 24
25 Εφαρμογή Στοίβας Παράδειγμα: Ενδοθεματική (Infix): A*B+C*D^E/F+G*H Επιθεματική (Postfix): AB*CDE^*F/+GH*+ Για τον υπολογισμό μιας αλγεβρικής έκφρασης ο μεταφραστής πραγματοποιεί: Μετάφραση της ενδοθεματικής μορφής της αριθμητικής έκφρασης σε επιθεματική Η επιθεματική μορφή χρησιμοποιείται για τον υπολογισμό της αλγεβρικής έκφρασης Πληροφορικής 25
26 Προτεραιότητες Τελεστών Οι μαθηματικές εκφράσεις αποτελούνται από τελεστές (operators) και από μεταβλητές ή τελεστέους (operands). Οι τελεστές διακρίνονται σε δυαδικούς (binary) και σε Operator unary-, unary+,! *, /, %, && +, -, <, >,,!, <, > Priority μοναδικούς (unary) αν αφορούν δύο ή μια μεταβλητές αντίστοιχα Πληροφορικής 26
27 infix expression: z a * ( x + y ) + z * c ^ ( 2 ( d + w ) ) / x ; postfix expression: Όταν ένα στοιχείο είναι μεταβλητή ή σταθερά, τότε τοποθετείται στα δεξιά της επιθεματικής μορφής Όταν το στοιχείο είναι τελεστής τότε κατευθύνεται σε μια στοίβα. Πριν την οριστική ώθηση στη στοίβα, ο τελεστής συγκρίνεται με τον τελεστή της κορυφής της στοίβας. Όταν εισερχόμενος τελεστής έχει προτεραιότητα μεγαλύτερη, τότε ο τελεστής εισάγεται στην κορυφή της στοίβας Εάν η προτεραιότητα του εισερχόμενου τελεστή είναι μικρότερη ή ίση τότε: Απωθούνται όλοι οι τελεστές της στοίβας με προτεραιότητα μεγαλύτερη ή ίση από την προτεραιότητα του νέου τελεστή Και ο νέος τελεστής εισάγεται και η ώθηση ολοκληρώνεται Πληροφορικής 27
28 infix expression: z a * ( x + y ) + z * c ^ ( 2 ( d + w ) ) / x ; postfix expression: Πληροφορικής 28
29 infix expression: z a * ( x + y ) + z * c ^ ( 2 ( d + w ) ) / x ; postfix expression: z Πληροφορικής 29
30 infix expression: za * ( x + y ) + z * c ^ ( 2 ( d + w ) ) / x ; postfix expression: z Πληροφορικής 30
31 infix expression: za* ( x + y ) + z * c ^ ( 2 ( d + w ) ) / x ; postfix expression: z a Πληροφορικής 31
32 infix expression: za* ( x + y ) + z * c ^ ( 2 ( d + w ) ) / x ; postfix expression: z a * Πληροφορικής 32
33 infix expression: za* ( x + y ) + z * c ^ ( 2 ( d + w ) ) / x ; postfix expression: z a ( * Πληροφορικής 33
34 infix expression: za* (x + y ) + z * c ^ ( 2 ( d + w ) ) / x ; postfix expression: z a x ( * Πληροφορικής 34
35 infix expression: za* ( x + y ) + z * c ^ ( 2 ( d + w ) ) / x ; postfix expression: z a x + ( * Πληροφορικής 35
36 infix expression: za* ( x + y ) + z * c ^ ( 2 ( d + w ) ) / x ; postfix expression: z a x y + ( * Πληροφορικής 36
37 infix expression: za* ( x + y ) + z * c ^ ( 2 ( d + w ) ) / x ; postfix expression: z a x y + ( * Πληροφορικής 37
38 infix expression: za* ( x + y ) + z * c ^ ( 2 ( d + w ) ) / x ; postfix expression: z a x y + * Πληροφορικής 38
39 infix expression: za* ( x + y ) + z * c ^ ( 2 ( d + w ) ) / x ; postfix expression: z a x y + * Πληροφορικής 39
40 infix expression: za* ( x + y ) + z * c ^ ( 2 ( d + w ) ) / x ; postfix expression: z a x y + * + Πληροφορικής 40
41 infix expression: za* ( x + y ) + z * c ^ ( 2 ( d + w ) ) / x ; postfix expression: z a x y + * z + Πληροφορικής 41
42 infix expression: za* ( x + y ) + z * c ^ ( 2 ( d + w ) ) / x ; postfix expression: z a x y + * z * + Πληροφορικής 42
43 infix expression: za* ( x + y ) + z * c ^ ( 2 ( d + w ) ) / x ; postfix expression: z a x y + * z c * + Πληροφορικής 43
44 infix expression: za* ( x + y ) + z * c^( 2 ( d + w ) ) / x ; postfix expression: z a x y + * z c ^ * + Πληροφορικής 44
45 infix expression: za* ( x + y ) + z * c^( 2 ( d + w ) ) / x ; postfix expression: z a x y + * z c ( ^ * + Πληροφορικής 45
46 infix expression: za* ( x + y ) + z * c^( 2 ( d + w ) ) / x ; postfix expression: z a x y + * z c 2 ( ^ * + Πληροφορικής 46
47 infix expression: za* ( x + y ) + z * c^( 2 ( d + w ) ) / x ; postfix expression: z a x y + * z c 2 ( ^ * + Πληροφορικής 47
48 infix expression: za* ( x + y ) + z * c^( 2 ( d + w ) ) / x ; postfix expression: z a x y + * z c 2 ( ( ^ * + Πληροφορικής 48
49 infix expression: za* ( x + y ) + z * c^( 2 ( d + w ) ) / x ; postfix expression: z a x y + * z c 2 ~ ( ( ^ * + Πληροφορικής 49
50 infix expression: za* ( x + y ) + z * c^( 2 ( d+ w ) ) / x ; postfix expression: z a x y + * z c 2 d ~ ( ( ^ * + Πληροφορικής 50
51 infix expression: za* ( x + y ) + z * c^( 2 ( d+w ) ) / x ; postfix expression: z a x y + * z c 2 d ~ ( ( ^ * + Πληροφορικής 51
52 infix expression: za* ( x + y ) + z * c^( 2 ( d+w ) ) / x ; postfix expression: z a x y + * z c 2 d ~ ( ( ^ * + Πληροφορικής 52
53 infix expression: za* ( x + y ) + z * c^( 2 ( d+w ) ) / x ; postfix expression: z a x y + * z c 2 d ~ + ( ( ^ * + Πληροφορικής 53
54 infix expression: za* ( x + y ) + z * c^( 2 ( d+w) ) / x ; postfix expression: z a x y + * z c 2 d ~ w + ( ( ^ * + Πληροφορικής 54
55 infix expression: za* ( x + y ) + z * c^( 2 ( d+w)) / x ; postfix expression: z a x y + * z c 2 d ~ w + ( ( ^ * + Πληροφορικής 55
56 infix expression: za* ( x + y ) + z * c^( 2 ( d+w)) / x ; postfix expression: z a x y + * z c 2 d ~ w + ( ( ^ * + Πληροφορικής 56
57 infix expression: za* ( x + y ) + z * c^( 2 ( d+w)) / x ; postfix expression: z a x y + * z c 2 d ~ w + ( ( ^ * + Πληροφορικής 57
58 infix expression: za* ( x + y ) + z * c^( 2 ( d+w)) / x ; postfix expression: z a x y + * z c 2 d ~ w + ( ^ * + Πληροφορικής 58
59 infix expression: za* ( x + y ) + z * c^( 2 ( d+w))/ x ; postfix expression: z a x y + * z c 2 d ~ w + ( ^ * + Πληροφορικής 59
60 infix expression: za* ( x + y ) + z * c^( 2 ( d+w))/ x ; postfix expression: z a x y + * z c 2 d ~ w + ( ^ * + Πληροφορικής 60
61 infix expression: za* ( x + y ) + z * c^( 2 ( d+w))/ x ; postfix expression: z a x y + * z c 2 d ~ w + ^ * + Πληροφορικής 61
62 infix expression: za* ( x + y ) + z * c^( 2 ( d+w))/x ; postfix expression: z a x y + * z c 2 d ~ w + ^ * + Πληροφορικής 62
63 infix expression: za* ( x + y ) + z * c^( 2 ( d+w))/x ; postfix expression: z a x y + * z c 2 d ~ w + ^ * + Πληροφορικής 63
64 infix expression: za* ( x + y ) + z * c^( 2 ( d+w))/x ; postfix expression: z a x y + * z c 2 d ~ w + ^ * + Πληροφορικής 64
65 infix expression: za* ( x + y ) + z * c^( 2 ( d+w))/x ; postfix expression: z a x y + * z c 2 d ~ w + ^ * / + Πληροφορικής 65
66 infix expression: za* ( x + y ) + z * c^( 2 ( d+w))/x; postfix expression: z a x y + * z c 2 d ~ w + ^ * x / + Πληροφορικής 66
67 infix expression: za* ( x + y ) + z * c^( 2 ( d+w))/x; postfix expression: z a x y + * z c 2 d ~ w + ^ * x / + Πληροφορικής 67
68 infix expression: za* ( x + y ) + z * c^( 2 ( d+w))/x; postfix expression: z a x y + * z c 2 d ~ w + ^ * x / + Πληροφορικής 68
69 infix expression: za* ( x + y ) + z * c^( 2 ( d+w))/x; postfix expression: z a x y + * z c 2 d ~ w + ^ * x / + Πληροφορικής 69
70 infix expression: za* ( x + y ) + z * c^( 2 ( d+w))/x; postfix expression: z a x y + * z c 2 d ~ w + ^ * x / + Πληροφορικής 70
71 infix expression: za* ( x + y ) + z * c^( 2 ( d+w))/x; postfix expression: z a x y + * z c 2 d ~ w + ^ * x / + Πληροφορικής 71
72 Εφαρμογή Στοίβας Αναζήτηση ενός μονοπατιού σε ένα λαβύρινθο. Πληροφορικής 72
73 Λαβύρινθος Entrance Exit Πληροφορικής 73
74 Πληροφορικής 74
75 Κινήσεις NW N NE [row-1][col-1] [row-1]col] [row-1][col+1] W X E [row]col-1] [row][col] [row][col+1] [row+1][col-1] [row+1][col] [row+1][col+1] SW S SE Allowable moves Πληροφορικής 75
76 Επίλυση Είσοδος (1,4,E) (1,3,E) Έξοδος (2,3,N) (2,2,E) (2,1,E) (1,1,S) (1,0,E) Πληροφορικής 76
77 Παράδειγμα Να προτείνετε µια δοµή δεδοµένων η οποία να υποστηρίζει εκτός από τις συνήθεις πράξεις στοίβας (IsEmpty, MakeEmpty, Top, Push, Pop) και την επιπλέον πράξη FindMin, η οποία επιστρέφει το µικρότερο στοιχείο της δοµής (χωρίς να το εξάγει). Να γράψετε ι) µια καθαρή προδιαγραφή των πράξεων και των µεταβλητών που χρειάζονται για τη δοµή και (ιι) την υλοποίηση των πράξεων σε ψευδοκώδικα. Όλες οι πράξεις πρέπει να είναι της τάξης Ο(1). Πληροφορικής 77
78 Λύση Σε κάθε θέση της στοίβας αποθηκεύουµε ζεύγη στοιχείων όπου το πρώτο µέλος κάθε ζεύγους αντιστοιχεί στο στοιχείο που εισήχθηκε, και το δεύτερο µέλος του ζεύγους στο µέχρι στιγµής ελάχιστο στοιχείο της στοίβας. Πληροφορικής 78
79 Για παράδειγµα οι διαδοχικές εισαγωγές 4,3,5,9,7,1,2 έχουν ως αποτέλεσµα τις πιο κάτω Κατά συνέπεια, ανά πάσα στιγµή µπορούµε να βρούµε και να επιστρέψουµε το ελάχιστο στοιχείο της στοίβας σε χρόνο σταθερό (επιστρέφοντας το δεύτερο µέλος του ζεύγους που βρίσκεται στον κόµβο κορυφής της στοίβας). Πληροφορικής 79
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές Δεδομένων Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού
Διαβάστε περισσότεραΔομές Δεδομένων Ενότητα 3
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 3: Στοίβα Απόστολος Παπαδόπουλος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό
Διαβάστε περισσότεραΣτοίβες. ΟΑΤ της Στοίβας. Περιγραφή και Υλικό Ανάγνωσης. Αφηρηµένοι Τύποι εδοµένων (AΤ )
Περιγραφή και Υλικό Ανάγνωσης Στοίβες ΟΑφηρηµένος Τύπος εδοµένων της Στοίβας (tack Abstract Data Type (ADT)) (..) Εφαρµογές για Στοίβες (..) Υλοποίηση µε βάση πίνακες (..) Στοίβα βασισµένη σε πίνακα η
Διαβάστε περισσότεραΔομές Δεδομένων & Αλγόριθμοι
Ουρές Ουρές Περίληψη Η ΟυράΑΔΤ Υλοποίηση με κυκλικό πίνακα Αυξανόμενη Ουρά βασισμένη σε πίνακα Interface ουράς στην C++ Η Ουρά ADT Η ΑΔΤ Ουρά αποθηκεύει αυθαίρετα αντικείμενα Οι εισαγωγές και διαγραφές
Διαβάστε περισσότεραΔομές Δεδομένων και Αλγόριθμοι
Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 14 Στοίβες 1 / 14 Στοίβες Η στοίβα είναι μια ειδική περίπτωση γραμμικής λίστας στην οποία οι εισαγωγές
Διαβάστε περισσότεραΔομές Δεδομένων (Data Structures)
Δομές Δεδομένων (Data Structures) Στοίβες Ουρές Στοίβες: Βασικές Έννοιες. Ουρές: Βασικές Έννοιες. Βασικές Λειτουργίες. Παραδείγματα. Στοίβες Δομή τύπου LIFO: Last In - First Out (τελευταία εισαγωγή πρώτη
Διαβάστε περισσότεραΣτοίβες - Ουρές. Στοίβα (stack) Γιάννης Θεοδωρίδης, Νίκος Πελέκης, Άγγελος Πικράκης Τµήµα Πληροφορικής
Στοίβες - Ουρές Γιάννης Θεοδωρίδης, Νίκος Πελέκης, Άγγελος Πικράκης Τµήµα Πληροφορικής οµές εδοµένων 1 Στοίβα (stack) οµή τύπουlifo: Last In - First Out (τελευταία εισαγωγή πρώτη εξαγωγή) Περιορισµένος
Διαβάστε περισσότεραΔομές Δεδομένων. Ενότητα 2: Στοίβες Εισαγωγή-Υλοποίηση ΑΤΔ Στοίβα με Πίνακα-Εφαρμογή Στοίβας: Αντίστροφη Πολωνική Γραφή. Καθηγήτρια Μαρία Σατρατζέμη
Ενότητα 2: Στοίβες Εισαγωγή-Υλοποίηση ΑΤΔ Στοίβα με Πίνακα-Εφαρμογή Στοίβας: Αντίστροφη Πολωνική Γραφή Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative
Διαβάστε περισσότεραΔομές Δεδομένων Ενότητα 4
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 4: Ουρές Απόστολος Παπαδόπουλος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό
Διαβάστε περισσότεραOι βασικές πράξεις (λειτουργίες) που ορίζονται για τον τύπο στοίβα αναφέρονται παρακάτω:
3 ΣTOIBEΣ KAI OYPEΣ 3.1 ΣΤΟΙΒΕΣ Στοίβα (stack) είναι µία λίστα στην οποία νέα στοιχεία µπορούν να προστεθούν και να αφαιρεθούν µόνο από τη µία άκρη της (κορυφή της στοίβας). Συχνά µία στοίβα αναφέρεται
Διαβάστε περισσότεραΔιάλεξη 05: Αφηρημένοι Τύποι Δεδομένων
Διάλεξη 05: Αφηρημένοι Τύποι Δεδομένων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Αφηρημένοι Τύποι Δεδομένων (ΑΤΔ) Οι ΑΤΔ Στοίβα και Ουρά Υλοποίηση των ΑΤΔ Στοίβα και Ουρά ΕΠΛ231 Δομές Δεδομένων
Διαβάστε περισσότεραΠΛΗ111. Ανοιξη Μάθηµα 4 ο. Στοίβα. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης
ΠΛΗ111 οµηµένος Προγραµµατισµός Ανοιξη 2005 Μάθηµα 4 ο Στοίβα Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης Ανασκόπηση Αφηρηµένος Τύπος εδοµένων Στοίβα Υλοποίηση µε Πίνακα Υλοποίηση
Διαβάστε περισσότεραΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 5. Αφηρημένοι Τύποι Δεδομένων / Στοίβες και Ουρές
ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 5. Αφηρημένοι Τύποι Δεδομένων / Στοίβες και Ουρές ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 2 Διάλεξη 05: Αφηρημένοι Τύποι Δεδομένων Στην ενότητα αυτή θα μελετηθούν τα
Διαβάστε περισσότεραΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές Δεδομένων Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού
Διαβάστε περισσότεραΠανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 3. Στοίβες & Ουρές 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 19/10/2017 Ανακεφαλαίωση:
Διαβάστε περισσότεραΠανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 3. Στοίβες & Ουρές 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 4/11/2016 Ανακεφαλαίωση:
Διαβάστε περισσότεραΔιάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών
ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Υλοποίηση ΑΤΔ με Συνδεδεμένες Λίστες -
Διαβάστε περισσότεραΟι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Μια δομή δεδομένων στην πληροφορική, συχνά αναπαριστά οντότητες του φυσικού κόσμου στον υπολογιστή. Για την αναπαράσταση αυτή, δημιουργούμε πρώτα ένα αφηρημένο μοντέλο στο οποίο προσδιορίζονται
Διαβάστε περισσότεραΔομές Δεδομένων & Ανάλυση Αλγορίθμων. 3ο Εξάμηνο. Ουρά (Queue) Υλοποίηση της με τη βοήθεια πίνακα. http://aetos.it.teithe.gr/~demos/teaching_gr.
Δομές Δεδομένων & Ανάλυση Αλγορίθμων 3ο Εξάμηνο Ουρά (Queue) Υλοποίηση της με τη βοήθεια πίνακα http://aetos.it.teithe.gr/~demos/teaching_gr.html Δημοσθένης Σταμάτης Τμήμα Μηχανικών Πληροφορικής ATEI ΘΕΣΣΑΛΟΝΙΚΗΣ
Διαβάστε περισσότεραΣυλλογές, Στοίβες και Ουρές
Συλλογές, Στοίβες και Ουρές Σε πολλές εφαρμογές μας αρκεί η αναπαράσταση ενός δυναμικού συνόλου με μια δομή δεδομένων η οποία δεν υποστηρίζει την αναζήτηση οποιουδήποτε στοιχείου. Συλλογή (bag) : Επιστρέφει
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας Στην άσκηση αυτή θα υλοποιήσετε μια κλάση Geometric η οποία διαχειρίζεται μια γεωμετρική ακολουθία ακεραίων
Διαβάστε περισσότεραΕΠΛ 231 Δομές Δεδομένων και Αλγόριθμοι 4-1
Εφαρμογές στοιβών Στην ενότητα αυτή θα μελετηθεί η χρήση στοιβών στις εξής εφαρμογές: Αναδρομικές συναρτήσεις Ισοζυγισμός Παρενθέσεων Αντίστροφος Πολωνικός Συμβολισμός ΕΠΛ 231 Δομές Δεδομένων και Αλγόριθμοι
Διαβάστε περισσότεραΔοµές Δεδοµένων. 6η Διάλεξη Αναδροµικές Εξισώσεις και Αφηρηµένοι Τύποι Δεδοµένων. Ε. Μαρκάκης
Δοµές Δεδοµένων 6η Διάλεξη Αναδροµικές Εξισώσεις και Αφηρηµένοι Τύποι Δεδοµένων Ε. Μαρκάκης Περίληψη Χρήση αναδροµικών εξισώσεων στην ανάλυση αλγορίθµων Αφηρηµένοι τύποι δεδοµένων Συλλογές στοιχείων Στοίβα
Διαβάστε περισσότεραΔομές Δεδομένων. Δημήτρης Μιχαήλ. Υλοποίηση Δυαδικού Σωρού σε γλώσσα Java. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Δομές Δεδομένων Υλοποίηση Δυαδικού Σωρού σε γλώσσα Java Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Σωρός Μεγίστου ως ΑΤΔ Ένας σωρός μεγίστου (max heap) είναι ένας ΑΤΔ που
Διαβάστε περισσότεραΑλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα)
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Αφηρημένες
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας Ένα ιστόγραμμα τιμών μετράει για ένα σύνολο από τιμές πόσες φορές εμφανίστηκε η κάθε τιμή. Για παράδειγμα
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Στην άσκηση αυτή θα υλοποιήσετε μια κλάση RandomVector η οποία διαχειρίζεται ένα τυχαίο διάνυσμα ακεραίων το οποίο μπορεί να έχει οποιοδήποτε
Διαβάστε περισσότεραΒασικές Δομές Δεδομένων
Βασικές Δομές Δεδομένων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Αφηρημένοι Τύποι Δεδομένων Οι ΑΤΔ Στοίβα και Ουρά Υλοποίηση των ΑΤΔ Στοίβα και Ουρά με Διαδοχική και Δυναμική Χορήγηση
Διαβάστε περισσότεραΠεριεχόµενα. 1 Εισαγωγή στις οµές εδοµένων 3. 2 Στοίβα (Stack) 5
Περιεχόµενα 1 Εισαγωγή στις οµές εδοµένων 3 2 Στοίβα (Stack) 5 i ΠΕΡΙΕΧΟΜΕΝΑ ΠΕΡΙΕΧΟΜΕΝΑ ii Πληροφορίες Εργαστηρίου Σκοπός του εργαστηρίου Το εργαστήριο οµές εδοµένων αποσκοπεί στην εφαρµογή των τεχνολογιών
Διαβάστε περισσότεραΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου,
Εφαρµογές στοιβών Στην ενότητα αυτή θα µελετηθεί η χρήση στοιβών στις εξής εφαρµογές: Αναδροµικές συναρτήσεις Ισοζυγισµός Παρενθέσεων Αντίστροφος Πολωνικός Συµβολισµός ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι
Διαβάστε περισσότεραΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές Δεδομένων Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού
Διαβάστε περισσότεραΔιάλεξη 15: Αναδρομή (Recursion) Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 15: Αναδρομή (Recursion) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Η έννοια της αναδρομής Μη αναδρομικός / Αναδρομικός Ορισμός Συναρτήσεων Παραδείγματα Ανάδρομης Αφαίρεση της Αναδρομής
Διαβάστε περισσότεραΣύνοψη Προηγούμενου (1/2) Στοίβες, Ουρές, Ουρές Προτεραιότητας. Σύνοψη Προηγούμενου (2/2) Σημερινό Μάθημα. Πίνακες. Εισαγωγή, σε χρόνο O(1).
Σύνοψη Προηγούμενου (1/2) Στοίβες, Ουρές, Ουρές Προτεραιότητας Ορέστης Τελέλης telelis@unipi.gr Τμήμα Ψηφιακών Συστημάτων, Πανεπιστήμιο Πειραιώς Πίνακες Εισαγωγή, σε χρόνο O(1). Αναζήτηση, σε χρόνο O(n).
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές Μαθήματα από το lab Υπενθύμιση: Η άσκηση ζητούσε να υλοποιήσετε μία κλάση vector που να διαχειρίζεται διανύσματα οποιουδήποτε
Διαβάστε περισσότεραΔιδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 12: Δέντρα ΙΙ -Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Δυαδικά Δένδρα - Δυαδικά Δένδρα Αναζήτησης(ΔΔΑ) - Εύρεση Τυχαίου, Μέγιστου, Μικρότερου στοιχείου - Εισαγωγή
Διαβάστε περισσότεραpublic class ArrayStack implements Stack {
public class ArrayStack implements Stack { private static final int DEF_STACK_SIZE=2; //Array of objects private Object[] S; private int index ; // index, top, last, position // Returns the last item of
Διαβάστε περισσότεραΔομές Δεδομένων & Αλγόριθμοι
- Πίνακες 1 Πίνακες Οι πίνακες έχουν σταθερό μέγεθος και τύπο δεδομένων. Βασικά πλεονεκτήματά τους είναι η απλότητα προγραμματισμού τους και η ταχύτητα. Ωστόσο δεν παρέχουν την ευελιξία η οποία απαιτείται
Διαβάστε περισσότεραΒασικές Έννοιες Δοµών Δεδοµένων
Δοµές Δεδοµένων Δοµές Δεδοµένων Στην ενότητα αυτή θα γνωρίσουµε ορισµένες Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε για την αποδοτική επίλυση του προβλήµατος του ευσταθούς ταιριάσµατος Βασικές Έννοιες
Διαβάστε περισσότεραΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΛΓΟΡΙΘΜΟΙ ΕΡΓΑΣΤΗΡΙΟ
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΛΓΟΡΙΘΜΟΙ ΕΡΓΑΣΤΗΡΙΟ Κωδικός Θ: ΤΠ3001, Κωδικός Ε: ΤΠ3101 (ΜΕΥ/Υ) Ώρες (Θ - Ε): 4-2 Προαπαιτούμενα: Δρ. ΒΙΔΑΚΗΣ ΝΙΚΟΣ ΕΡΓΑΣΤΗΡΙΟ 6 Στοίβα (Stack) Stack Introduction Stack is one of the
Διαβάστε περισσότεραΔιάλεξη 12: Δέντρα ΙΙ Δυαδικά Δέντρα
Διάλεξη 12: Δέντρα ΙΙ Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Δυαδικά Δένδρα Δυαδικά Δένδρα Αναζήτησης (ΔΔΑ) Εύρεση Τυχαίου, Μέγιστου, Μικρότερου στοιχείου Εισαγωγή στοιχείου
Διαβάστε περισσότεραΤύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( )
Τύποι Δεδομένων και Απλές Δομές Δεδομένων Παύλος Εφραιμίδης V1.0 (2014-01-13) Απλές Δομές Δεδομένων Στην ενότητα αυτή θα γνωρίσουμε ορισμένες απλές Δομές Δεδομένων και θα τις χρησιμοποιήσουμε για την αποδοτική
Διαβάστε περισσότεραΔιάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις
ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 16: Σωροί Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις Ουρά Προτεραιότητας Η δομή
Διαβάστε περισσότεραΔιδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ
Διάλεξη 8: Αφηρημένοι Τύποι Δεδομένων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Αφηρημένοι Τύποι Δεδομένων (ΑΤΔ) Οι ΑΤΔ Στοίβα και Ουρά Υλοποίηση των ΑΤΔ Στοίβα και Ουρά με Στατική Δέσμευση
Διαβάστε περισσότεραΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ. Δηµοσθένης Σταµάτης Τµήµα Πληροφορικής
Δοµές Δεδοµένων & Ανάλυση Αλγορίθµων 3ο Εξάµηνο Υλοποίηση Στοίβας και Ουράς µε Συνδεδεµένες Λίστες http://aetos.it.teithe.gr/~demos/teaching_gr.html Δηµοσθένης Σταµάτης Τµήµα Πληροφορικής ATEI ΘΕΣΣΑΛΟΝΙΚΗΣ
Διαβάστε περισσότεραΠρογραμματισμός Ι. Δείκτες. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Προγραμματισμός Ι Δείκτες Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Τι είναι ο δείκτης Ένας δείκτης είναι μια μεταβλητή που περιέχει μια διεύθυνση μνήμης. Θυμηθείτε πως
Διαβάστε περισσότεραΔοµές Δεδοµένων. 7η Διάλεξη Αφηρηµένοι Τύποι Δεδοµένων. Ε. Μαρκάκης
Δοµές Δεδοµένων 7η Διάλεξη Αφηρηµένοι Τύποι Δεδοµένων Ε. Μαρκάκης Περίληψη Στοίβα ώθησης προς τα κάτω Παραδείγµατα πελατών για στοίβες Υλοποιήσεις στοίβας µε πίνακες και λίστες Γενικές υλοποιήσεις Ουρές
Διαβάστε περισσότεραΔομές Δεδομένων & Αλγόριθμοι
- Δυαδικά Δένδρα (binary trees) - Δυαδικά Δένδρα Αναζήτησης (binary search trees) 1 Δυαδικά Δένδρα Ορισμοί Λειτουργίες Υλοποιήσεις ΑΤΔ Εφαρμογές 2 Ορισμοί (αναδρομικός ορισμός) Ένα δένδρο t είναι ένα πεπερασμένο
Διαβάστε περισσότεραΑνάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2)
Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Οργάνωση Προγράµµατος Header Files Μετάφραση και σύνδεση αρχείων προγράµµατος ΕΠΛ 132 Αρχές Προγραµµατισµού
Διαβάστε περισσότεραΑλγόριθµοι και Πολυπλοκότητα
Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα Φεβρουαρίου 0 / ένδρα Ενα δένδρο είναι
Διαβάστε περισσότεραΚλάσεις στη Java. Στοίβα - Stack. Δήλωση της κλάσης. ΗκλάσηVector της Java. Ηκλάση Stack
Κλάσεις στην Java Κλάσεις στη Java Παύλος Εφραιμίδης Θα δούμε τη διαδικασία δημιουργίας μιας κλάσης Θα υλοποιήσουμε μια κλάση για τη Δομή Δεδομένων Stack Java Κλάσεις στη Java 1 Java Κλάσεις στη Java 2
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Constructors, equals, tostring
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Constructors, equals, tostring Constructors (Δημιουργοί) O Constructor είναι μια «μέθοδος» η οποία καλείται όταν δημιουργούμε το αντικείμενο
Διαβάστε περισσότεραΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΘΕΩΡΗΤΙΚΗ ΑΣΚΗΣΗ 2 ΛΥΣΕΙΣ Γραμμικές Δομές Δεδομένων, Ταξινόμηση
ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 231: Δομές Δεδομένων και Αλγόριθμοι Εαρινό Εξάμηνο 2013 ΘΕΩΡΗΤΙΚΗ ΑΣΚΗΣΗ 2 ΛΥΣΕΙΣ Γραμμικές Δομές Δεδομένων, Ταξινόμηση Διδάσκων Καθηγητής: Παναγιώτης Ανδρέου
Διαβάστε περισσότεραStandard Template Library (STL) C++ library
Τ Μ Η Μ Α Μ Η Χ Α Ν Ι Κ Ω Ν Η / Υ Κ Α Ι Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ Standard Template Library (STL) C++ library Δομές Δεδομένων Μάριος Κενδέα kendea@ceid.upatras.gr Εισαγωγή Η Standard Βιβλιοθήκη προτύπων
Διαβάστε περισσότεραΔιορθώσεις σελ
Διορθώσεις σελ. 73-74 # Τώρα ο άνθρωπος σκέφτεται έναν αριθμό από 1 έως 1000 Ν = 1000 print Σκέψου έναν αριθμό από το 1 έως το, Ν guesses = 0 found = False first = 1 last = N while not found and guesses
Διαβάστε περισσότεραΔομές Δεδομένων & Αλγόριθμοι
Λίστες Λίστες - Απλά Συνδεδεμένες Λίστες - Διπλά Συνδεδεμένες Λίστες Είδη Γραμμικών Λιστών Σειριακή Λίστα Καταλαμβάνει συνεχόμενες θέσεις κύριας μνήμης Συνδεδεμένη Λίστα Οι κόμβοι βρίσκονται σε απομακρυσμένες
Διαβάστε περισσότεραΜάθημα 21: Ουρές (Queues)
Queues Page 1 Μάθημα 21: Ουρές (Queues) Η ουρά (queue) είναι μια δομή δεδομένων. Η βασική λειτουργικότητα είναι η εισαγωγή στοιχείων στην πίσω θέση και η εξαγωγή-διαγραφή στοιχείων από την μπροστινή θέση.
Διαβάστε περισσότεραΚΕΦΑΛΑΙΟ 3 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ
ΚΕΦΑΛΑΙΟ 3 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ Τα δεδομένα (data) είναι η αφαιρετική αναπαράσταση της πραγματικότητας και συνεπώς μία απλοποιημένη όψη της. Η συλλογή των ακατέργαστων δεδομένων και ο συσχετισμός
Διαβάστε περισσότεραΑπλές Δοµές Δεδοµένων Στην ενότητα αυτή θα γνωρίσουµε ορισµένες απλές Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε για την αποδοτική επίλυση του προβλή
Απλές Δοµές Δεδοµένων Απλές Δοµές Δεδοµένων Στην ενότητα αυτή θα γνωρίσουµε ορισµένες απλές Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε για την αποδοτική επίλυση του προβλήµατος του ευσταθούς ταιριάσµατος
Διαβάστε περισσότεραΚλάσεις στη Java. Παύλος Εφραιμίδης. Java Κλάσεις στη Java 1
Κλάσεις στη Java Παύλος Εφραιμίδης Java Κλάσεις στη Java 1 Κλάσεις στην Java Θα δούμε τη διαδικασία δημιουργίας μιας κλάσης Θα υλοποιήσουμε μια κλάση για τη Δομή Δεδομένων Stack Java Κλάσεις στη Java 2
Διαβάστε περισσότεραΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 3 ο
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Να γίνει περιγραφή της δομής δεδομένων Στοίβα. Στη δομή δεδομένων στοίβα τα δεδομένα στοιβάζονται το ένα πάνω στο άλλο. Σχηματικά οι λεπτομέρειες μιας δομής δεδομένων στοίβας μπορούν
Διαβάστε περισσότεραΔιάλεξη 07: Λίστες Ι Υλοποίηση & Εφαρμογές
Διάλεξη 07: Λίστες Ι Υλοποίηση & Εφαρμογές Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ευθύγραμμες Απλά Συνδεδεμένες Λίστες (εισαγωγή, εύρεση, διαγραφή) Ευθύγραμμες Διπλά Συνδεδεμένες Λίστες
Διαβάστε περισσότεραΔομές Δεδομένων Standard Template Library (STL) 23/3/2017 ΜΠΟΜΠΟΤΑΣ ΑΓΟΡΑΚΗΣ
Δομές Δεδομένων Standard Template Library (STL) 23/3/2017 ΜΠΟΜΠΟΤΑΣ ΑΓΟΡΑΚΗΣ mpompotas@ceid.upatras.gr Εισαγωγή - STL Η Standard Βιβλιοθήκη προτύπων (STL) είναι μια βιβλιοθήκη λογισμικού για την C++ Δημιουργήθηκε
Διαβάστε περισσότεραΔιάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις
ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 16: Σωροί Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις Ουρά Προτεραιότητας (Priority
Διαβάστε περισσότεραΚατ οίκον Εργασία 2 Σκελετοί Λύσεων
Κατ οίκον Εργασία 2 Σκελετοί Λύσεων Άσκηση 1 Ο ζητούμενος ΑΤΔ μπορεί να υλοποιηθεί ως μια ακολουθία από στοιχεία τύπου window συνοδευόμενη από τις πράξεις: MakeNewWindow(L,w) Destroy(L,w) SwitchTo(L,w)
Διαβάστε περισσότεραΔιδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ
Διάλεξη 9: Στοίβες:Υλοποίηση & Εφαρμογές Στην ενότητα αυτή θα μελετηθεί η χρήση στοιβών στις εξής εφαρμογές: Υλοποίηση Στοιβών με Δυναμική Δέσμευση Μνήμης Εφαρμογή Στοιβών 1: Αναδρομικές συναρτήσεις Εφαρμογή
Διαβάστε περισσότεραΕΝΟΤΗΤΑ 7 ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ ΣΩΡΟΙ
ΕΝΟΤΗΤΑ 7 ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ ΣΩΡΟΙ Ουρές Προτεραιότητας (Priority Queues) Θεωρούµε ότι τα προς αποθήκευση στοιχεία έχουν κάποια διάταξη (καθένα έχει µια προτεραιότητα). Τα προς αποθήκευση στοιχεία είναι
Διαβάστε περισσότεραΟντοκεντρικός Προγραμματισμός
Οντοκεντρικός Προγραμματισμός Ενότητα 7: C++ TEMPLATES, ΥΠΕΡΦΟΡΤΩΣΗ ΤΕΛΕΣΤΩΝ, ΕΞΑΙΡΕΣΕΙΣ Templates ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής
Διαβάστε περισσότεραΑνάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον υποδειγματική διδασκαλία Κεφ. 3 Δομές Δεδομένων & αλγόριθμοι
Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον υποδειγματική διδασκαλία Κεφ. 3 Δομές Δεδομένων & αλγόριθμοι Αραποστάθης Μάριος Καθηγητής Πληροφορικής Πειραματικού Λυκείου Βαρβακείου http://users.sch.gr/mariosarapostathis
Διαβάστε περισσότεραΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ
ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ (Οι ερωτήσεις µε κίτρινη υπογράµµιση είναι εκτός ύλης για φέτος) ΕΙΣΑΓΩΓΗ Q1. Οι Πρωταρχικοί τύποι (primitive types) στη Java 1. Είναι όλοι οι ακέραιοι και όλοι οι πραγµατικοί
Διαβάστε περισσότεραΟντοκεντρικός Προγραμματισμός
Οντοκεντρικός Προγραμματισμός Ενότητα 8: C++ ΒΙΒΛΙΟΗΚΗ STL, ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Δομές Δεδομένων ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής Δομές
Διαβάστε περισσότεραΔομές Δεδομένων. Δημήτρης Μιχαήλ. Εισαγωγή. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Δομές Δεδομένων Εισαγωγή Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Βιβλιογραφία Robert Sedgewick, Αλγόριθμοι σε C, Μέρη 1-4 (Θεμελιώδεις Έννοιες, Δομές Δεδομένων, Ταξινόμηση,
Διαβάστε περισσότεραΔιασυνδεδεμένες Δομές. Δυαδικά Δέντρα. Προγραμματισμός II 1
Διασυνδεδεμένες Δομές Δυαδικά Δέντρα Προγραμματισμός II 1 lalis@inf.uth.gr Δέντρα Τα δέντρα είναι κλασικές αναδρομικές δομές Ένα δέντρο αποτελείται από υποδέντρα, καθένα από τα οποία μπορεί να θεωρηθεί
Διαβάστε περισσότεραΑφηρημένες Δομές Δεδομένων. Στοίβα (Stack) Υλοποίηση στοίβας
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής ισαγωγή στην πιστήμη των Υπολογιστών 2015-16 λγόριθμοι και ομές εδομένων (IΙ) (γράφοι και δένδρα) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης φηρημένες
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα μέσα σε αντικείμενα Αντικείμενα ως επιστρεφόμενες τιμές Αντικείμενα με πίνακες
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αντικείμενα μέσα σε αντικείμενα Αντικείμενα ως επιστρεφόμενες τιμές Αντικείμενα με πίνακες ANTIKEIMENA MEΣΑ ΣΕ ΑΝΤΙΚΕΙΜΕΝΑ Αντικείμενα μέσα σε αντικείμενα Εκτός
Διαβάστε περισσότεραΒασικές οµές εδοµένων
Βασικές οµές εδοµένων Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Αφηρηµένοι Τύποι εδοµένων Οι ΑΤ Στοίβα και Ουρά Υλοποίηση των ΑΤ Στοίβα και Ουρά µε ιαδοχική και υναµική Χορήγηση Μνήµης
Διαβάστε περισσότεραΑντισταθμιστική ανάλυση
Αντισταθμιστική ανάλυση Θεωρήστε έναν αλγόριθμο Α που χρησιμοποιεί μια δομή δεδομένων Δ : Κατά τη διάρκεια εκτέλεσης του Α η Δ πραγματοποιεί μία ακολουθία από πράξεις. Παράδειγμα: Θυμηθείτε το πρόβλημα
Διαβάστε περισσότεραΤµήµα Πληροφορικής. Δοµές Δεδοµένων - Εργασία 1. Φθινοπωρινό Εξάµηνο Διδάσκων: E. Μαρκάκης. Στοίβες και Ουρές. Οικονοµικό Πανεπιστήµιο Αθηνών
Οικονοµικό Πανεπιστήµιο Αθηνών Τµήµα Πληροφορικής Φθινοπωρινό Εξάµηνο 2016 Δοµές Δεδοµένων - Εργασία 1 Διδάσκων: E. Μαρκάκης Στοίβες και Ουρές Σκοπός της εργασίας είναι η εξοικείωση µε βασικούς αφηρηµένους
Διαβάστε περισσότεραΔομές Δεδομένων. Ενότητα 4: Ο ΑΤΔ Λίστα & Υλοποίηση Λίστας με σειριακή αποθήκευση- Ο ΑΤΔ Συνδεδεμένη Λίστα- Υλοποίηση ΑΤΔ Συνδεδεμένη Λίστα με πίνακα
Ενότητα 4: Ο ΑΤΔ Λίστα & Υλοποίηση Λίστας με σειριακή αποθήκευση- Ο ΑΤΔ Συνδεδεμένη Λίστα- Υλοποίηση ΑΤΔ Συνδεδεμένη Λίστα με πίνακα Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό
Διαβάστε περισσότεραΔιάλεξη 22: Δυαδικά Δέντρα. Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 22: Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Δυαδικά Δένδρα - Δυαδικά Δένδρα Αναζήτησης - Πράξεις Εισαγωγής, Εύρεσης Στοιχείου, Διαγραφής Μικρότερου Στοιχείου
Διαβάστε περισσότεραΕπιµέλεια Θοδωρής Πιερράτος
εδοµένα οµές δεδοµένων και αλγόριθµοι Τα δεδοµένα είναι ακατέργαστα γεγονότα. Η συλλογή των ακατέργαστων δεδοµένων και ο συσχετισµός τους δίνει ως αποτέλεσµα την πληροφορία. Η µέτρηση, η κωδικοποίηση,
Διαβάστε περισσότεραΔιάλεξη 6: Δείκτες και Πίνακες
Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 6: Δείκτες και Πίνακες (Κεφάλαιο 12, KNK-2ED) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132 6-1 Περιεχόμενο
Διαβάστε περισσότεραΛΙΣΤΕΣ. Ορισμός ΑΤΔ Λίστα ΑΤΔ Ακολουθιακή Λίστα Διαχείριση Δεικτών και Λιστών στη C ΑΤΔ Συνδεδεμένη Λίστα. Εφαρμογές και Χρήση Λιστών
ΛΙΣΤΕΣ Ορισμός ΑΤΔ Λίστα ΑΤΔ Ακολουθιακή Λίστα Διαχείριση Δεικτών και Λιστών στη C ΑΤΔ Συνδεδεμένη Λίστα Υλοποίηση με δείκτες (pointers) Υλοποίηση με πίνακα Εφαρμογές και Χρήση Λιστών Λίστες (Lists) Δεδομένα
Διαβάστε περισσότεραΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07
ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07 Αριθμητική στο δυαδικό σύστημα (γενικά) Συμπληρωματικά για δυαδικό σύστημα Η πρόσθεση στηρίζεται στους κανόνες: 0 + 0 = 0, 0 + 1 = 1, 1
Διαβάστε περισσότεραΣΤΟΙΒΕΣ (stacks) Σχήµα: Λειτουργία Στοίβας
ΣΤΟΙΒΕΣ (stacks) Η στοίβα είναι µια συλλογή δεδοµένων µε γραµµική διάταξη στην οποία όλες οι εισαγωγές και οι διαγραφές γίνονται στο ένα άκρο που λέγεται κορυφή (top) της στοίβας Σχήµα: Λειτουργία Στοίβας
Διαβάστε περισσότεραΠρογραμματισμός Η/Υ. 4 η ενότητα: Δομές Δεδομένων. Τμήμα. Τεχνολόγων Περιβάλλοντος. ΤΕΙ Ιονίων Νήσων. Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων
Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Προγραμματισμός Η/Υ 4 η ενότητα: Δομές Δεδομένων Τμήμα Τεχνολόγων Περιβάλλοντος ΤΕΙ Ιονίων Νήσων Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative
Διαβάστε περισσότεραΔομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής
Ενότητα 8: Γραμμική Αναζήτηση και Δυαδική Αναζήτηση-Εισαγωγή στα Δέντρα και Δυαδικά Δέντρα-Δυαδικά Δέντρα Αναζήτησης & Υλοποίηση ΔΔΑ με δείκτες Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό
Διαβάστε περισσότεραΠρογραμματισμός Ι. Δομές Δεδομένων. Δημήτρης Μιχαήλ. Ακ. Έτος Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Προγραμματισμός Ι Δομές Δεδομένων Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2009-2010 Δομές Δεδομένων Μια δομή δεδομένων είναι μια συλλογή δεδομένων με κάποιες
Διαβάστε περισσότεραΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ηµιουργία και χειρισµός LIFO λιστών µεταβλητού µήκους µε στοιχεία ακεραίους αριθµούς. Γενίκευση για χειρισµό λιστών πραγµατικών
Διαβάστε περισσότεραΑλγόριθμοι και Πολυπλοκότητα
Αλγόριθμοι και Πολυπλοκότητα Ανάλυση Αλγορίθμων Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ανάλυση Αλγορίθμων Η ανάλυση αλγορίθμων περιλαμβάνει τη διερεύνηση του τρόπου
Διαβάστε περισσότεραΔηµοσθένης Σταµάτης Τµήµα Πληροφορικής T.E.I. ΘΕΣΣΑΛΟΝΙΚΗΣ
Δοµές Δεδοµένων & Ανάλυση Αλγορίθµων 3ο Εξάµηνο Γραµµικές Δοµές Δεδοµένων (Linear Data Structures) Πίνακες (Arrays) Διανύσµατα (Vectors) http://aetos.it.teithe.gr/~demos/teaching_gr.html Δηµοσθένης Σταµάτης
Διαβάστε περισσότεραΟυρά Προτεραιότητας: Heap
Ουρά Προτεραιότητας: Heap Επιμέλεια διαφανειών: Δ. Φωτάκης (λίγες τροποποιήσεις: Α. Παγουρτζής) Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Δομές Δεδομένων (Αναπαράσταση,)
Διαβάστε περισσότεραΔιάλεξη 08: Λίστες ΙΙ Κυκλικές Λίστες
ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 08: Λίστες ΙΙ Κυκλικές Λίστες Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Κυκλικές Απλά Συνδεδεμένες Λίστες - Κυκλικές Διπλά Συνδεδεμένες
Διαβάστε περισσότεραΔιδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ
Διάλεξη 10: Λίστες Υλοποίηση & Εφαρμογές Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ευθύγραμμες Απλά Συνδεδεμένες Λίστες (εύρεση, εισαγωγή, διαγραφή) Σύγκριση Συνδεδεμένων Λιστών με Πίνακες
Διαβάστε περισσότεραΠρογραμματισμός Υπολογιστών με C++
Προγραμματισμός Υπολογιστών με C++ ( 2012-13 ) 17η διάλεξη Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Τι θα ακούσετε σήμερα Προσθήκη ελέγχου ορίων σε πίνακες χρησιμοποιώντας σχεδιότυπα τάξεων
Διαβάστε περισσότεραΔιάλεξη 20: Αναδρομή (Recursion) Διδάσκων: Παναγιώτης Ανδρέου
1 Διάλεξη 20: Αναδρομή (Recursion) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: -Η έννοια της αναδρομής - Μη-αναδρομικός / Αναδρομικός Ορισμός Συναρτήσεων - Παραδείγματα Ανάδρομης - Αφαίρεση
Διαβάστε περισσότεραΔομές Δεδομένων. Ενότητα 6: Εφαρμογή Συνδεδεμένων Λιστών: Αλφαβητικό ευρετήριο κειμένου- Υλοποίηση ΑΤΔ Στοίβα και Ουρά με δείκτες
Ενότητα 6: Εφαρμογή Συνδεδεμένων Λιστών: Αλφαβητικό ευρετήριο κειμένου- Υλοποίηση ΑΤΔ Στοίβα και Ουρά με δείκτες Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες
Διαβάστε περισσότεραΔιάλεξη 26: Σωροί. Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 26: Σωροί Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας -Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις Διδάσκων: Παναγιώτης Ανδρέου ΕΠΛ035 Δομές Δεδομένων και Αλγόριθμοι
Διαβάστε περισσότεραΒασικές δοµές δεδοµένων. Ορολογία λιστών. 8.1 Βασικές έννοιες δοµών δεδοµένων 8.2 Υλοποίηση δοµών δεδοµένων 8.3 Μια σύντοµη υπόθεση εργασίας
ΚΕΦΑΛΑΙΟ 8: Αφηρηµένοι τύποι δεδοµένων 8.1 οµές δεδοµένων (data structures) 8.1 Βασικές έννοιες δοµών δεδοµένων 8.2 Υλοποίηση δοµών δεδοµένων 8.3 Μια σύντοµη υπόθεση εργασίας Αδόµητα δεδοµένα οδός Ζέας
Διαβάστε περισσότεραΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 22/11/07
Ακαδ έτος 2007-2008 ΠΛΗΡΟΦΟΡΙΚΗ Ι Φερεντίνος 22/11/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με ΑΜ σε 3, 7, 8 & 9 22/11/07 Παράδειγμα με if/else if και user input: import javautil*; public class Grades public
Διαβάστε περισσότεραΟυρά Προτεραιότητας (priority queue)
Ουρά Προτεραιότητας (priority queue) Δομή δεδομένων που υποστηρίζει δύο βασικές λειτουργίες : Εισαγωγή στοιχείου με δεδομένο κλειδί. Επιστροφή ενός στοιχείου με μέγιστο (ή ελάχιστο) κλειδί και διαγραφή
Διαβάστε περισσότερα