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

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

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

Transcript

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

2 Συλλογή Υποστηρίζει τις λειτουργίες: εισαγωγή(s,x) : τοποθετεί το στοιχείο x στη συλλογή S εξαγωγή(s) : αφαιρεί από την συλλογή S ένα αυθαίρετο στοιχείο της x και το επιστρέφει Μπορεί να υλοποιηθεί εύκολα με πίνακα ή συνδεδεμένη λίστα, έτσι ώστε οι λειτουργίες εισαγωγής και εξαγωγής να γίνονται σε Ο(1) χρόνο.

3 Υποστηρίζει τις λειτουργίες: ώθηση(s,x) : τοποθετεί το στοιχείο x στην κορυφή της στοίβας S απώθηση(s) : επιστρέφει το στοιχείο x που βρίσκεται στην κορυφή της στοίβας S και διαγράφει το x από την S ώθηση απώθηση στοίβα

4 Διασύνδεση class Stack // στοίβα αντικειμένων τύπου Item { Stack(int) // αρχικοποίηση στοίβας boolean isempty() // έλεγχος αν η στοίβα είναι άδεια void push(item) // ώθηση αντικειμένου Item pop(); // απώθηση αντικειμένου }

5 Υλοποίηση - με πίνακα stack pointer: δείχνει την επόμενη κενή θέση α β γ δ - με συνδεδεμένη λίστα κάτω όριο τρέχουσα κορυφή άνω όριο push(α) push(β) push(γ) push(δ) head δ γ β α τρέχουσα κορυφή

6 Υλοποίηση με πίνακα stack pointer Ν : δείχνει την επόμενη κενή θέση α β γ δ κάτω όριο 0 class Stack { private Item[] S; private int N; τρέχουσα κορυφή άνω όριο maxn-1 Stack(int maxn) { S = new Item[maxN]; N=0; } boolean isempty() { return (N == 0); } void push(item item) { S[N++] = item; } } Item pop() { return S[--N]; }

7 Υλοποίηση με πίνακα stack pointer Ν : δείχνει την επόμενη κενή θέση α β γ δ κάτω όριο 0 class Stack { private Item[] S; private int N; τρέχουσα κορυφή άνω όριο maxn-1 } Stack(int maxn) { S = new Item[maxN]; N=0; } boolean isempty() { return (N == 0); } void push(item item) { S[N++] = item; } Item pop() { Item t = S[--N]; S[N] = null; return t; } Χρειάζεται όταν ο πίνακας S αποθηκεύει αναφορές σε αντικείμενα, έτσι ώστε το σύστημα της Java να γνωρίζει ότι η αντίστοιχη μνήμη μπορεί να απελευθερωθεί.

8 Υλοποίηση με πίνακα stack pointer Ν : δείχνει την επόμενη κενή θέση Τι γίνεται όμως αν Ν == maxn ; α β γ δ κάτω όριο 0 class Stack { private Item[] S; private int N; τρέχουσα κορυφή άνω όριο maxn-1 } Stack(int maxn) { S = new Item[maxN]; N=0; } boolean isempty() { return (N == 0); } void push(item item) { S[N++] = item; } Item pop() { Item t = S[--N]; S[N] = null; return t; } Χρειάζεται όταν ο πίνακας S αποθηκεύει αναφορές σε αντικείμενα, έτσι ώστε το σύστημα της Java να γνωρίζει ότι η αντίστοιχη μνήμη μπορεί να απελευθερωθεί.

9 Υλοποίηση με συνδεδεμένη λίστα head δ γ β α τρέχουσα κορυφή class Stack { private Node head; private class Node { Item item; Node next; Node(Item item, Node next) { this.item = item; this.next = next; } } Stack(int maxn) { head = null; } boolean isempty() { return head == null; } void push(item item) { head = new Node(item, head); } } Item pop() { Item item = head.item; Node t = head.next; head = t; return item; }

10 Υλοποίηση stack pointer: δείχνει την επόμενη κενή θέση - με πίνακα α β γ δ κάτω όριο τρέχουσα κορυφή άνω όριο head - με συνδεδεμένη λίστα δ γ β α τρέχουσα κορυφή Και οι δύο υλοποιήσεις επιτυγχάνουν Ο(1) χρόνο ανά λειτουργία. Η υλοποίηση με πίνακα είναι πιο γρήγορη στην πράξη. Η υλοποίηση με πίνακα έχει το μειονέκτημα ότι πρέπει να οριστεί ο μέγιστος αριθμός στοιχείων (maxn) στη στοίβα. Το αν αυτό αποτελεί σημαντικό πρόβλημα ή όχι εξαρτάται από την εφαρμογή.

11 ενθεματική αναπαράσταση μεταθεματική αναπαράσταση

12 μεταθεματική αναπαράσταση ενθεματική αναπαράσταση Αντικαθιστούμε με όπου δυαδικός τελεστής

13 μεταθεματική αναπαράσταση ενθεματική αναπαράσταση Αντικαθιστούμε με όπου δυαδικός τελεστής

14 Υπολογισμός μεταθεματικής αναπαράστασης με στοίβα S Αν το επόμενο σύμβολο είναι αριθμός x τότε εκτελούμε S.push(x) Διαφορετικά, αν είναι τελεστής, εκτελούμε x = S.pop(); y = S.pop(); z = x y; S.push(z);

15 Υπολογισμός μεταθεματικής αναπαράστασης με στοίβα S Αν το επόμενο σύμβολο είναι αριθμός x τότε εκτελούμε S.push(x) Διαφορετικά, αν είναι τελεστής, εκτελούμε x = S.pop(); y = S.pop(); z = x y; S.push(z); 5 στοίβα S

16 Υπολογισμός μεταθεματικής αναπαράστασης με στοίβα S Αν το επόμενο σύμβολο είναι αριθμός x τότε εκτελούμε S.push(x) Διαφορετικά, αν είναι τελεστής, εκτελούμε x = S.pop(); y = S.pop(); z = x y; S.push(z); 9 5 στοίβα S

17 Υπολογισμός μεταθεματικής αναπαράστασης με στοίβα S Αν το επόμενο σύμβολο είναι αριθμός x τότε εκτελούμε S.push(x) Διαφορετικά, αν είναι τελεστής, εκτελούμε x = S.pop(); y = S.pop(); z = x y; S.push(z); στοίβα S

18 Υπολογισμός μεταθεματικής αναπαράστασης με στοίβα S Αν το επόμενο σύμβολο είναι αριθμός x τότε εκτελούμε S.push(x) Διαφορετικά, αν είναι τελεστής, εκτελούμε x = S.pop(); y = S.pop(); z = x y; S.push(z); = στοίβα S

19 Υπολογισμός μεταθεματικής αναπαράστασης με στοίβα S Αν το επόμενο σύμβολο είναι αριθμός x τότε εκτελούμε S.push(x) Διαφορετικά, αν είναι τελεστής, εκτελούμε x = S.pop(); y = S.pop(); z = x y; S.push(z); στοίβα S

20 Υπολογισμός μεταθεματικής αναπαράστασης με στοίβα S Αν το επόμενο σύμβολο είναι αριθμός x τότε εκτελούμε S.push(x) Διαφορετικά, αν είναι τελεστής, εκτελούμε 6 x = S.pop(); y = S.pop(); z = x y; S.push(z); στοίβα S

21 Υπολογισμός μεταθεματικής αναπαράστασης με στοίβα S Αν το επόμενο σύμβολο είναι αριθμός x τότε εκτελούμε S.push(x) Διαφορετικά, αν είναι τελεστής, εκτελούμε x = S.pop(); y = S.pop(); z = x y; S.push(z); 6*4 = στοίβα S

22 Υπολογισμός μεταθεματικής αναπαράστασης με στοίβα S Αν το επόμενο σύμβολο είναι αριθμός x τότε εκτελούμε S.push(x) Διαφορετικά, αν είναι τελεστής, εκτελούμε x = S.pop(); y = S.pop(); z = x y; S.push(z); 24*17 = στοίβα S

23 Υπολογισμός μεταθεματικής αναπαράστασης με στοίβα S Αν το επόμενο σύμβολο είναι αριθμός x τότε εκτελούμε S.push(x) Διαφορετικά, αν είναι τελεστής, εκτελούμε x = S.pop(); y = S.pop(); z = x y; S.push(z); στοίβα S

24 Υπολογισμός μεταθεματικής αναπαράστασης με στοίβα S Αν το επόμενο σύμβολο είναι αριθμός x τότε εκτελούμε S.push(x) Διαφορετικά, αν είναι τελεστής, εκτελούμε x = S.pop(); y = S.pop(); z = x y; S.push(z); 7+408= στοίβα S

25 Υπολογισμός μεταθεματικής αναπαράστασης με στοίβα S Αν το επόμενο σύμβολο είναι αριθμός x τότε εκτελούμε S.push(x) Διαφορετικά, αν είναι τελεστής, εκτελούμε x = S.pop(); y = S.pop(); z = x y; S.push(z); 415*5= στοίβα S

26 Υπολογισμός μεταθεματικής αναπαράστασης με στοίβα S (τύπου int) public static void main(string[] args){ char[] a = args[0].tochararray(); int N = a.length; Stack S = new Stack(N); for (i = 0; i < N; i++) { if (a[i] == + ) S.push(S.pop()+S.pop()); if (a[i] == * ) S.push(S.pop()*S.pop()); if ((a[i] >= 0 ) && (a[i] <= 9 ) S.push(0); while ((a[i] >= 0 ) && (a[i] <= 9 )) S.push(10*S.pop() + (a[i++]- 0 )); } System.out.println(S.pop() + ); }

27 ενθεματική αναπαράσταση μεταθεματική αναπαράσταση Χρησιμοποιούμε στοίβα χαρακτήρων S. Αν το επόμενο σύμβολο είναι: - αριθμός : τον τυπώνουμε - ( : δεν κάνουμε τίποτα - ) : εκτελούμε S.pop() και τυπώνουμε το σύμβολο που λάβαμε - τελεστής : εκτελούμε S.push() στοίβα S

28 ενθεματική αναπαράσταση μεταθεματική αναπαράσταση Χρησιμοποιούμε στοίβα χαρακτήρων S. Αν το επόμενο σύμβολο είναι: - αριθμός : τον τυπώνουμε - ( : δεν κάνουμε τίποτα - ) : εκτελούμε S.pop() και τυπώνουμε το σύμβολο που λάβαμε - τελεστής : εκτελούμε S.push() 5 στοίβα S

29 ενθεματική αναπαράσταση μεταθεματική αναπαράσταση Χρησιμοποιούμε στοίβα χαρακτήρων S. Αν το επόμενο σύμβολο είναι: - αριθμός : τον τυπώνουμε - ( : δεν κάνουμε τίποτα - ) : εκτελούμε S.pop() και τυπώνουμε το σύμβολο που λάβαμε - τελεστής : εκτελούμε S.push() 5 * στοίβα S

30 ενθεματική αναπαράσταση μεταθεματική αναπαράσταση Χρησιμοποιούμε στοίβα χαρακτήρων S. Αν το επόμενο σύμβολο είναι: - αριθμός : τον τυπώνουμε - ( : δεν κάνουμε τίποτα - ) : εκτελούμε S.pop() και τυπώνουμε το σύμβολο που λάβαμε - τελεστής : εκτελούμε S.push() 5 * στοίβα S

31 ενθεματική αναπαράσταση μεταθεματική αναπαράσταση Χρησιμοποιούμε στοίβα χαρακτήρων S. Αν το επόμενο σύμβολο είναι: - αριθμός : τον τυπώνουμε - ( : δεν κάνουμε τίποτα - ) : εκτελούμε S.pop() και τυπώνουμε το σύμβολο που λάβαμε - τελεστής : εκτελούμε S.push() 5 * στοίβα S

32 ενθεματική αναπαράσταση μεταθεματική αναπαράσταση Χρησιμοποιούμε στοίβα χαρακτήρων S. Αν το επόμενο σύμβολο είναι: - αριθμός : τον τυπώνουμε - ( : δεν κάνουμε τίποτα - ) : εκτελούμε S.pop() και τυπώνουμε το σύμβολο που λάβαμε - τελεστής : εκτελούμε S.push() 5 * στοίβα S

33 ενθεματική αναπαράσταση μεταθεματική αναπαράσταση Χρησιμοποιούμε στοίβα χαρακτήρων S. Αν το επόμενο σύμβολο είναι: - αριθμός : τον τυπώνουμε - ( : δεν κάνουμε τίποτα - ) : εκτελούμε S.pop() και τυπώνουμε το σύμβολο που λάβαμε - τελεστής : εκτελούμε S.push() 5 9 * στοίβα S

34 ενθεματική αναπαράσταση μεταθεματική αναπαράσταση Χρησιμοποιούμε στοίβα χαρακτήρων S. Αν το επόμενο σύμβολο είναι: - αριθμός : τον τυπώνουμε - ( : δεν κάνουμε τίποτα - ) : εκτελούμε S.pop() και τυπώνουμε το σύμβολο που λάβαμε - τελεστής : εκτελούμε S.push() * στοίβα S

35 ενθεματική αναπαράσταση μεταθεματική αναπαράσταση Χρησιμοποιούμε στοίβα χαρακτήρων S. Αν το επόμενο σύμβολο είναι: - αριθμός : τον τυπώνουμε - ( : δεν κάνουμε τίποτα - ) : εκτελούμε S.pop() και τυπώνουμε το σύμβολο που λάβαμε - τελεστής : εκτελούμε S.push() * στοίβα S

36 ενθεματική αναπαράσταση μεταθεματική αναπαράσταση Χρησιμοποιούμε στοίβα χαρακτήρων S. Αν το επόμενο σύμβολο είναι: - αριθμός : τον τυπώνουμε - ( : δεν κάνουμε τίποτα - ) : εκτελούμε S.pop() και τυπώνουμε το σύμβολο που λάβαμε - τελεστής : εκτελούμε S.push() * στοίβα S

37 ενθεματική αναπαράσταση μεταθεματική αναπαράσταση Χρησιμοποιούμε στοίβα χαρακτήρων S. Αν το επόμενο σύμβολο είναι: - αριθμός : τον τυπώνουμε - ( : δεν κάνουμε τίποτα - ) : εκτελούμε S.pop() και τυπώνουμε το σύμβολο που λάβαμε - τελεστής : εκτελούμε S.push() * * στοίβα S

38 ενθεματική αναπαράσταση μεταθεματική αναπαράσταση Χρησιμοποιούμε στοίβα χαρακτήρων S. Αν το επόμενο σύμβολο είναι: - αριθμός : τον τυπώνουμε - ( : δεν κάνουμε τίποτα - ) : εκτελούμε S.pop() και τυπώνουμε το σύμβολο που λάβαμε - τελεστής : εκτελούμε S.push() * * στοίβα S

39 ενθεματική αναπαράσταση μεταθεματική αναπαράσταση Χρησιμοποιούμε στοίβα χαρακτήρων S. Αν το επόμενο σύμβολο είναι: - αριθμός : τον τυπώνουμε - ( : δεν κάνουμε τίποτα - ) : εκτελούμε S.pop() και τυπώνουμε το σύμβολο που λάβαμε - τελεστής : εκτελούμε S.push() * * στοίβα S

40 ενθεματική αναπαράσταση μεταθεματική αναπαράσταση Χρησιμοποιούμε στοίβα χαρακτήρων S. Αν το επόμενο σύμβολο είναι: - αριθμός : τον τυπώνουμε - ( : δεν κάνουμε τίποτα - ) : εκτελούμε S.pop() και τυπώνουμε το σύμβολο που λάβαμε - τελεστής : εκτελούμε S.push() * * * στοίβα S

41 ενθεματική αναπαράσταση μεταθεματική αναπαράσταση Χρησιμοποιούμε στοίβα χαρακτήρων S. Αν το επόμενο σύμβολο είναι: - αριθμός : τον τυπώνουμε - ( : δεν κάνουμε τίποτα - ) : εκτελούμε S.pop() και τυπώνουμε το σύμβολο που λάβαμε - τελεστής : εκτελούμε S.push() * * * στοίβα S

42 ενθεματική αναπαράσταση μεταθεματική αναπαράσταση Χρησιμοποιούμε στοίβα χαρακτήρων S. Αν το επόμενο σύμβολο είναι: - αριθμός : τον τυπώνουμε - ( : δεν κάνουμε τίποτα - ) : εκτελούμε S.pop() και τυπώνουμε το σύμβολο που λάβαμε - τελεστής : εκτελούμε S.push() * * * στοίβα S

43 ενθεματική αναπαράσταση μεταθεματική αναπαράσταση Χρησιμοποιούμε στοίβα χαρακτήρων S. Αν το επόμενο σύμβολο είναι: - αριθμός : τον τυπώνουμε - ( : δεν κάνουμε τίποτα - ) : εκτελούμε S.pop() και τυπώνουμε το σύμβολο που λάβαμε - τελεστής : εκτελούμε S.push() * * * στοίβα S

44 ενθεματική αναπαράσταση μεταθεματική αναπαράσταση Χρησιμοποιούμε στοίβα χαρακτήρων S. Αν το επόμενο σύμβολο είναι: - αριθμός : τον τυπώνουμε - ( : δεν κάνουμε τίποτα - ) : εκτελούμε S.pop() και τυπώνουμε το σύμβολο που λάβαμε - τελεστής : εκτελούμε S.push() * * * στοίβα S

45 ενθεματική αναπαράσταση μεταθεματική αναπαράσταση Χρησιμοποιούμε στοίβα χαρακτήρων S. Αν το επόμενο σύμβολο είναι: - αριθμός : τον τυπώνουμε - ( : δεν κάνουμε τίποτα - ) : εκτελούμε S.pop() και τυπώνουμε το σύμβολο που λάβαμε - τελεστής : εκτελούμε S.push() * * 7 * στοίβα S

46 ενθεματική αναπαράσταση μεταθεματική αναπαράσταση Χρησιμοποιούμε στοίβα χαρακτήρων S. Αν το επόμενο σύμβολο είναι: - αριθμός : τον τυπώνουμε - ( : δεν κάνουμε τίποτα - ) : εκτελούμε S.pop() και τυπώνουμε το σύμβολο που λάβαμε - τελεστής : εκτελούμε S.push() * * 7 + * στοίβα S

47 ενθεματική αναπαράσταση μεταθεματική αναπαράσταση Χρησιμοποιούμε στοίβα χαρακτήρων S. Αν το επόμενο σύμβολο είναι: - αριθμός : τον τυπώνουμε - ( : δεν κάνουμε τίποτα - ) : εκτελούμε S.pop() και τυπώνουμε το σύμβολο που λάβαμε - τελεστής : εκτελούμε S.push() * * 7 + * στοίβα S

48 ενθεματική αναπαράσταση μεταθεματική αναπαράσταση public static main(string[] args) { char[] a = args[0].tochararray(); int N = a.length; Stack S = new Stack(N); for (i = 0; i < N; i++) { if (a[i] == ) ) System.out.print(S.pop() + ); if ((a[i] == * ) (a[i] == + )) S.push(a[i]); if ((a[i] >= 0 ) && (a[i] <= 9 )) System.out.print(a[i] + ); } System.out.println( ); }

49 Η στοίβα υποστηρίζει τις λειτουργίες: ώθηση(s,x) : τοποθετεί το στοιχείο x στην κορυφή της στοίβας S απώθηση(s) : επιστρέφει το στοιχείο x που βρίσκεται στην κορυφή της στοίβας S και διαγράφει το x από την S ώθηση απώθηση στοίβα Η απώθηση απομακρύνει το στοιχείο που προστέθηκε πιο πρόσφατα LIFO (Last In First Out) ουρά

50 FIFO Ουρά FIFO (First In First Out) ουρά : η διαγραφή απομακρύνει το παλαιότερο στοιχείο της ουράς τοποθέτηση(q,x) : τοποθετεί το στοιχείο x στo τέλος της ουράς Q λήψη(q) : επιστρέφει το στοιχείο x που βρίσκεται στην αρχή της ουράς Q και διαγράφει το x από την Q λήψη τοποθέτηση FIFO ουρά

51 FIFO Ουρά Διασύνδεση class Queue // ουρά αντικειμένων τύπου Item { Queue(int) // αρχικοποίηση στοίβας boolean isempty() // έλεγχος αν η στοίβα είναι άδεια void put(item) // τοποθέτηση αντικειμένου Item get(); // λήψη αντικειμένου }

52 FIFO Ουρά Υλοποίηση με συνδεδεμένη λίστα head δ γ β α tail class Queue { private class Node { } παλαιότερο στοιχείο Item item; Node next; νεότερο στοιχείο Node(Item item) { this.item = item; next = null; } private Node head, tail; Queue(int maxn) { head = null; tail = null; } boolean isempty() { return (head == null); } void put(item item) { Node t = tail; tail = new Node(item); if (isempty()) head = tail; else t.next=tail; } Item get() { item = head.item; Node t = head.next; head = t; return item; }

53 FIFO Ουρά Υλοποίηση με πίνακα Θεωρούμε την ουρά ως ένα αναδιπλωμένο πίνακα q[] : αν η τρέχουσα θέση του πιο πρόσφατου στοιχείου είναι η tail τότε το επόμενο στοιχείο θα εισαχθεί στη θέση (tail+1) % N tail (tail+1) % N Ν

54 FIFO Ουρά Υλοποίηση με πίνακα tail head % N Ν-1 0 class Queue { private Item[] q; 1 private int N, head, tail; Queue(int maxn) { q = new Item[maxN + 1]; N = maxn+1; head = N; tail = 0; } boolean isempty() { return (head % N == tail); } void put(item item) { q[tail++] = item; tail = tail % N; } } Item get() { head = head % N; return q[head++]; }

55 FIFO Ουρά Υλοποίηση με πίνακα αρχική κατάσταση: tail head % N tail : δείχνει την επόμενη κενή θέση του πίνακα στην οποία θα τοποθετηθεί νέο στοιχείο head : δείχνει τη θέση του παλαιότερου στοιχείου της ουράς

56 FIFO Ουρά Υλοποίηση με πίνακα τοποθέτηση: head % N tail tail : δείχνει την επόμενη κενή θέση του πίνακα στην οποία θα τοποθετηθεί νέο στοιχείο head : δείχνει τη θέση του παλαιότερου στοιχείου της ουράς

57 FIFO Ουρά Υλοποίηση με πίνακα τοποθέτηση: head % N tail tail : δείχνει την επόμενη κενή θέση του πίνακα στην οποία θα τοποθετηθεί νέο στοιχείο head : δείχνει τη θέση του παλαιότερου στοιχείου της ουράς

58 FIFO Ουρά Υλοποίηση με πίνακα τοποθέτηση: head % N tail tail : δείχνει την επόμενη κενή θέση του πίνακα στην οποία θα τοποθετηθεί νέο στοιχείο head : δείχνει τη θέση του παλαιότερου στοιχείου της ουράς

59 FIFO Ουρά Υλοποίηση με πίνακα λήψη: head tail tail : δείχνει την επόμενη κενή θέση του πίνακα στην οποία θα τοποθετηθεί νέο στοιχείο head : δείχνει τη θέση του παλαιότερου στοιχείου της ουράς

60 FIFO Ουρά Υλοποίηση με πίνακα λήψη: head tail tail : δείχνει την επόμενη κενή θέση του πίνακα στην οποία θα τοποθετηθεί νέο στοιχείο head : δείχνει τη θέση του παλαιότερου στοιχείου της ουράς

61 FIFO Ουρά Όπως και στην περίπτωση της στοίβας : Και οι δύο υλοποιήσεις επιτυγχάνουν Ο(1) χρόνο ανά λειτουργία. Η υλοποίηση με πίνακα είναι πιο γρήγορη στην πράξη. Η υλοποίηση με πίνακα έχει το μειονέκτημα ότι πρέπει να οριστεί ο μέγιστος αριθμός στοιχείων (maxn) στην ουρά. Το αν αυτό αποτελεί σημαντικό πρόβλημα ή όχι εξαρτάται από την εφαρμογή.

62 Ουρά δύο άκρων Deque (Double Ended Queue) : επιτρέπει εισαγωγή/διαγραφή και στα δύο άκρα της ουράς deque Μπορεί να υλοποιηθεί με παρόμοιο τρόπο έτσι ώστε να επιτυγχάνει Ο(1) χρόνο ανά λειτουργία

63 Ουρά δύο άκρων Deque (Double Ended Queue) : επιτρέπει εισαγωγή/διαγραφή και στα δύο άκρα της ουράς deque Μπορεί να υλοποιηθεί με παρόμοιο τρόπο έτσι ώστε να επιτυγχάνει Ο(1) χρόνο ανά λειτουργία Τι συμβαίνει όταν μπορούμε να έχουμε εισαγωγή του ίδιου στοιχείου πάνω από 1 φορά;

64 Ουρά δύο άκρων Deque (Double Ended Queue) : επιτρέπει εισαγωγή/διαγραφή και στα δύο άκρα της ουράς deque Μπορεί να υλοποιηθεί με παρόμοιο τρόπο έτσι ώστε να επιτυγχάνει Ο(1) χρόνο ανά λειτουργία Τι συμβαίνει όταν μπορούμε να έχουμε εισαγωγή του ίδιου στοιχείου πάνω από 1 φορά; Για να διατηρήσουμε Ο(1) χρόνο ανά λειτουργία σε αυτή την περίπτωση μπορούμε να χρησιμοποιήσουμε την τεχνική του κατακερματισμού που θα δούμε αργότερα

65 Ουρά δύο άκρων Deque (Double Ended Queue) : επιτρέπει εισαγωγή/διαγραφή και στα δύο άκρα της ουράς deque Μπορεί να υλοποιηθεί με παρόμοιο τρόπο έτσι ώστε να επιτυγχάνει Ο(1) χρόνο ανά λειτουργία Τι συμβαίνει όταν μπορούμε να έχουμε εισαγωγή του ίδιου στοιχείου πάνω από 1 φορά; Απλή λύση αν τα στοιχεία που εισάγουμε είναι ακέραιοι στο διάστημα [0,Μ-1] : Διατηρούμε ένα πίνακα Μ θέσεων t[] (τύπου boolean) : t[i]=true αν και μόνο αν το στοιχείο i υπάρχει στην ουρά t[i]=false αν και μόνο αν το στοιχείο i δεν υπάρχει στην ουρά

66 Ουρά δύο άκρων Deque (Double Ended Queue) : επιτρέπει εισαγωγή/διαγραφή και στα δύο άκρα της ουράς deque Μπορεί να υλοποιηθεί με παρόμοιο τρόπο έτσι ώστε να επιτυγχάνει Ο(1) χρόνο ανά λειτουργία Τι συμβαίνει όταν μπορούμε να έχουμε εισαγωγή του ίδιου στοιχείου πάνω από 1 φορά; Ακόμα και αν μπορούμε να ελέγξουμε γρήγορα αν ένα στοιχείο υπάρχει στην ουρά σε περίπτωση εισαγωγής του ίδιου στοιχείου ποιο θα κρατήσουμε; Το παλαιότερο ή το νεότερο; (Έχει σημασία όταν το κάθε στοιχείο συνοδεύεται και από άλλα δεδομένα)

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

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

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

Δομές Δεδομένων & Ανάλυση Αλγορίθμων. 3ο Εξάμηνο. Ουρά (Queue) Υλοποίηση της με τη βοήθεια πίνακα. http://aetos.it.teithe.gr/~demos/teaching_gr.

Δομές Δεδομένων & Ανάλυση Αλγορίθμων. 3ο Εξάμηνο. Ουρά (Queue) Υλοποίηση της με τη βοήθεια πίνακα. http://aetos.it.teithe.gr/~demos/teaching_gr. Δομές Δεδομένων & Ανάλυση Αλγορίθμων 3ο Εξάμηνο Ουρά (Queue) Υλοποίηση της με τη βοήθεια πίνακα http://aetos.it.teithe.gr/~demos/teaching_gr.html Δημοσθένης Σταμάτης Τμήμα Μηχανικών Πληροφορικής ATEI ΘΕΣΣΑΛΟΝΙΚΗΣ

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

Ουρά Προτεραιότητας (priority queue)

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

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

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

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

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

Διάλεξη 07: Λίστες Ι Υλοποίηση & Εφαρμογές

Διάλεξη 07: Λίστες Ι Υλοποίηση & Εφαρμογές Διάλεξη 07: Λίστες Ι Υλοποίηση & Εφαρμογές Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ευθύγραμμες Απλά Συνδεδεμένες Λίστες (εισαγωγή, εύρεση, διαγραφή) Ευθύγραμμες Διπλά Συνδεδεμένες Λίστες

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

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

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

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

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

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

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

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

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

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

Δομές Δεδομένων. Λουκάς Γεωργιάδης. 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 Αλγόριθμος: Μέθοδος για την επίλυση ενός προβλήματος Δεδομένα: Σύνολο από πληροφορίες που

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

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

Δομές δεδομένων (2) Αλγόριθμοι Δομές δεδομένων (2) Αλγόριθμοι Παράγωγοι τύποι (struct) σύνοψη προηγουμένων Πίνακες: πολλές μεταβλητές ίδιου τύπου Παράγωγοι τύποι ή Δομές (struct): ομαδοποίηση μεταβλητών διαφορετικού τύπου struct Student

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

Διάλεξη 15: Αναδρομή (Recursion) Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 15: Αναδρομή (Recursion) Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 15: Αναδρομή (Recursion) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Η έννοια της αναδρομής Μη αναδρομικός / Αναδρομικός Ορισμός Συναρτήσεων Παραδείγματα Ανάδρομης Αφαίρεση της Αναδρομής

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

Διάλεξη 10: Δομές Δεδομένων Ι (Στοίβες & Ουρές)

Διάλεξη 10: Δομές Δεδομένων Ι (Στοίβες & Ουρές) Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 10: Δομές Δεδομένων Ι (Στοίβες & Ουρές) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132 10-1 Περιεχόμενο Διάλεξης

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

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

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Εισαγωγή. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Δομές Δεδομένων Εισαγωγή Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Βιβλιογραφία Robert Sedgewick, Αλγόριθμοι σε C, Μέρη 1-4 (Θεμελιώδεις Έννοιες, Δομές Δεδομένων, Ταξινόμηση,

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

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2)

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2) Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Οργάνωση Προγράµµατος Header Files Μετάφραση και σύνδεση αρχείων προγράµµατος ΕΠΛ 132 Αρχές Προγραµµατισµού

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

Αναδρομικοί Αλγόριθμοι

Αναδρομικοί Αλγόριθμοι Αναδρομικός αλγόριθμος (recursive algorithm) Επιλύει ένα πρόβλημα λύνοντας ένα ή περισσότερα στιγμιότυπα του ίδιου προβλήματος. Αναδρομικός αλγόριθμος (recursive algorithm) Επιλύει ένα πρόβλημα λύνοντας

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

Περιεχόµενα. 1 Εισαγωγή στις οµές εδοµένων 3. 2 Στοίβα (Stack) 5

Περιεχόµενα. 1 Εισαγωγή στις οµές εδοµένων 3. 2 Στοίβα (Stack) 5 Περιεχόµενα 1 Εισαγωγή στις οµές εδοµένων 3 2 Στοίβα (Stack) 5 i ΠΕΡΙΕΧΟΜΕΝΑ ΠΕΡΙΕΧΟΜΕΝΑ ii Πληροφορίες Εργαστηρίου Σκοπός του εργαστηρίου Το εργαστήριο οµές εδοµένων αποσκοπεί στην εφαρµογή των τεχνολογιών

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

Δομές Δεδομένων. Ενότητα 7: Άλλες παραλλαγές Συνδεδεμένων Λιστών-Παράσταση Αραιού Πολυωνύμου με Συνδεδεμένη Λίστα. Καθηγήτρια Μαρία Σατρατζέμη

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 22/11/07

ΠΛΗΡΟΦΟΡΙΚΗ Ι 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

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

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

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

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

Διάλεξη 21η: Απλά Συνδεδεμένες Λίστες

Διάλεξη 21η: Απλά Συνδεδεμένες Λίστες Διάλεξη 21η: Απλά Συνδεδεμένες Λίστες Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Πρατικάκης (CSD) Απλές Λίστες CS100, 2015-2016 1 / 10 Δομές δεδομένων Ορισμός:

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

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

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

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

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

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

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

Δομές Δεδομένων. Ενότητα 4: Ο ΑΤΔ Λίστα & Υλοποίηση Λίστας με σειριακή αποθήκευση- Ο ΑΤΔ Συνδεδεμένη Λίστα- Υλοποίηση ΑΤΔ Συνδεδεμένη Λίστα με πίνακα

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων Παράδειγμα: Τμήμα πανεπιστημίου

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

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

HY-252 Αντικειμενοστραφής Προγραμματισμός. Χειμερινό Εξάμηνο 2012 Διδάσκων: Χριστοφίδης Βασίλης. Ημερομηνία Παράδοσης: 16/11/2012

HY-252 Αντικειμενοστραφής Προγραμματισμός. Χειμερινό Εξάμηνο 2012 Διδάσκων: Χριστοφίδης Βασίλης. Ημερομηνία Παράδοσης: 16/11/2012 HY-252 Αντικειμενοστραφής Προγραμματισμός Χειμερινό Εξάμηνο 2012 Διδάσκων: Χριστοφίδης Βασίλης 2 η Σειρά Ασκήσεων Ημερομηνία Παράδοσης: 16/11/2012 Παρακάτω σας δίνονται οι ορισμοί τεσσάρων διαφορετικών

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

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων 2 Βασικές Εντολές 2.1. Εντολές Οι στην Java ακολουθούν το πρότυπο της γλώσσας C. Έτσι, κάθε εντολή που γράφουμε στη Java θα πρέπει να τελειώνει με το ερωτηματικό (;). Όπως και η C έτσι και η Java επιτρέπει

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

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η μέθοδος main(), εμφάνιση μηνυμάτων, Java προγράμματα που εκτελούν αριθμητικές πράξεις Γαβαλάς Δαμιανός

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

Σι θα δούμε σε αυτό το μάθημα;

Σι θα δούμε σε αυτό το μάθημα; Σι θα δούμε σε αυτό το μάθημα; Γήισζε, αξρηθνπνίεζε θαη ρξήζε κεηαβιεηώλ πηλάθσλ (arrays) Γήισζε, αξρηθνπνίεζε θαη ρξήζε κεηαβιεηώλ ζπιινγώλ (collections) Σι είναι ένας πίνακας (array) Έλαο πίλαθαο είλαη

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

Διάλεξη 13: Δομές Δεδομένων ΙΙ (Ταξινομημένες Λίστες)

Διάλεξη 13: Δομές Δεδομένων ΙΙ (Ταξινομημένες Λίστες) Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 13: Δομές Δεδομένων ΙΙ (Ταξινομημένες Λίστες) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132 13-1 Περιεχόμενο

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

Βασικά Στοιχεία της Java

Βασικά Στοιχεία της Java Βασικά Στοιχεία της Java Παύλος Εφραιμίδης Java Βασικά Στοιχεία της γλώσσας Java 1 Τύποι Δεδομένων Η Java έχει δύο κατηγορίες τύπων δεδομένων: πρωτογενείς (primitive) τύπους δεδομένων αναφορές Java Βασικά

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές)

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές) ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές) Βρείτε τα λάθη Στο πρόγραμμα στην επόμενη διαφάνεια υπάρχουν διάφορα λάθη Ποια είναι? public abstract

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

4 Συλλογές Αντικειμένων

4 Συλλογές Αντικειμένων 4 Συλλογές Αντικειμένων Πώς χειριζόμαστε αντικείμενα σε ομάδες με επανάληψη Η Απαίτηση Συλλογών Αντικειμένων Πολλές εφαρμογές χρειάζονται πλήθος αντικειμένων: Κατάλογος βιβλίων Φοιτητολόγιο Πελατολόγιο

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

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

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

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

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Μεταβλητές,

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

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

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 7: Ενθυλάκωση (encapsulation), Τροποποιητές(modifiers) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ενθυλάκωση -Τροποποιητές Πρόσβασης (Access Modifiers), public, protected, private,

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

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

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

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

API: Applications Programming Interface

API: Applications Programming Interface ÒØ Ñ ÒÓ ØÖ ÔÖÓ» Ñ ÒØ Ñ ÒÓ ØÖ ÔÖÓ Ö ÑÑ Ø Ñ ½ Ö Ø Ò Ô Ö Ø ÒØ Ñ ÒÛÒ ÒÒÓ ôòøóù ÔÖ Ñ Ø Ó ÑÓÙ Ì ÔÓ ÓÑ ÒÛÒ Ì µ (i) ÒÓÐÓØ ÑôÒ (ii)ôö Ü º Ð ØÖ Ò Ò ÖÛÔÓ ØÖ ÔÐ Ò Ø Ó Ó Ù Ø Ñ Ø ººº ½ºÈÖÛØ ÓÒØ Ø ÔÓ int double char

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

Εργαστήριο 2: Πίνακες

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

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

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

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

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

Εισαγωγή στη γλώσσα προγραμματισμού JAVA. Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών

Εισαγωγή στη γλώσσα προγραμματισμού JAVA. Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών Εισαγωγή στη γλώσσα προγραμματισμού JAVA Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών Το πρώτο φλιτζάνι Java Λίστα με τα απαραίτητα Το πρώτο μου πρόγραμμα(hello World) Συνεχίζοντας

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

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός. Παναγιώτης Σφέτσος sfetsos@it.teithe.gr

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός. Παναγιώτης Σφέτσος sfetsos@it.teithe.gr ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός Παναγιώτης Σφέτσος sfetsos@it.teithe.gr ΕΡΓΑΣΤΗΡΙΟ - 3 ΘΕΜΑΤΑ: Κλάσεις Αντικείμενα Δομητές/Κατασκευαστές - Μέθοδοι - Παράμετροι

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

ΤΕΙ Θεσσαλονίκης Τμήμα Πληροφορικής

ΤΕΙ Θεσσαλονίκης Τμήμα Πληροφορικής Παναγιώτης Αδαμίδης adamidis@it.teithe.gr Αναδρομή (Recursion) Μια φορά και έναν καιρό ήταν ένα παιδάκι που δεν μπορούσε να κοιμηθεί, έτσι η μαμά του, του είπε ένα παραμύθι για ένα αρκουδάκι που δεν μπορούσε

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

Διάλεξη 15: Δομές Δεδομένων IV (Διπλά Συνδεδεμένες Λίστες)

Διάλεξη 15: Δομές Δεδομένων IV (Διπλά Συνδεδεμένες Λίστες) Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 15: Δομές Δεδομένων IV (Διπλά Συνδεδεμένες Λίστες) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132 15-1 Περιεχόμενο

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

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

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

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

Διάλεξη 14: Δομές Δεδομένων ΙΙI (Λίστες και Παραδείγματα)

Διάλεξη 14: Δομές Δεδομένων ΙΙI (Λίστες και Παραδείγματα) Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 14: Δομές Δεδομένων ΙΙI (Λίστες και Παραδείγματα) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132 14-1 Περιεχόμενο

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

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

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

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

Υλοποίηση Λιστών. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα:

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

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

Αντικείµενα. ηµιουργία και χρησιµοποίηση αντικειµένων. ηµιουργία αντικειµένων

Αντικείµενα. ηµιουργία και χρησιµοποίηση αντικειµένων. ηµιουργία αντικειµένων Αντικείµενα ηµιουργία και χρησιµοποίηση αντικειµένων ηµιουργία αντικειµένων Για να δηµιουργήσω ένα νέο αντικείµενο χρησιµοποιώ τον τελεστή new µε τοόνοµατηςκλάσηςαπότηνοποίαθέλωναδηµιουργήσωένααντικείµενο,

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

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

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 3: Προγραμματισμός σε JAVA I Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Στοιχειώδης Προγραμματισμός - Προγραμματισμός με Συνθήκες - Προγραμματισμός με Βρόγχους

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

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

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

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

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

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

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

5 ΔΕΝΤΡΑ (Trees) Σχήµα 5.1 : ενδροειδής αναπαράσταση αρχείων στα Windows. έντρα. \ {root directory} Accessories. Program Files.

5 ΔΕΝΤΡΑ (Trees) Σχήµα 5.1 : ενδροειδής αναπαράσταση αρχείων στα Windows. έντρα. \ {root directory} Accessories. Program Files. 5 ΔΕΝΤΡΑ (Trees) Oι περισσότερες δοµές δεδοµένων που εξετάσαµε µέχρι τώρα (λίστες, στοίβες, ουρές) ήταν γραµµικές (ή δοµές δεδοµένων µιας διάστασης). Στην παράγραφο αυτή θα ασχοληθούµε µε τις µή-γραµµικές

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

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C Εισαγωγή στην C Μορφή Προγράµµατος σε γλώσσα C Τµήµα Α Με την εντολή include συµπεριλαµβάνω στο πρόγραµµα τα πρότυπα των συναρτήσεων εισόδου/εξόδου της C.Το αρχείο κεφαλίδας stdio.h είναι ένας κατάλογος

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και αντικείμενα στην Java Strings Πίνακες ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και αντικείμενα στην Java Strings Πίνακες ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΤΙΚΕΙΜΕΝΑ Κλάση Μια κλάση είναι μία αφηρημένη περιγραφή αντικειμένων με κοινά χαρακτηριστικά

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

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008 Παράδειγμα: Μηχανή για Εισιτήρια 2 Ορισμός Κλάσεων Σύνταξη κλάσης: πεδία, κατασκευαστές, μέθοδοι Ένας αυτόματος εκδότης εισιτηρίων είναι μια μηχανή που δέχεται χρήματα και εκδίδει ένα εισιτήριο. Εκδίδει

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

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

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

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

Generics και ArrayLists

Generics και ArrayLists ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός Παναγιώτης Σφέτσος sfetsos@it.teithe.gr Generics και ArrayLists Προσοχή!!! Να εκτελεστούν πρώτα όλες οι ασκήσεις τις Θεωρίας

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

Δηµοσθένης Σταµάτης Τµήµα Πληροφορικής ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΔΕΝΤΡΑ (TREES) B C D E F G H I J K L M

Δηµοσθένης Σταµάτης Τµήµα Πληροφορικής ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΔΕΝΤΡΑ (TREES) B C D E F G H I J K L M Δοµές Δεδοµένων & Ανάλυση Αλγορίθµων 3ο Εξάµηνο Δέντρα Δυαδικά Δέντρα Δυαδικά Δέντρα Αναζήτησης (inary Search Trees) http://aetos.it.teithe.gr/~demos/teaching_r.html Δηµοσθένης Σταµάτης Τµήµα Πληροφορικής

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

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

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

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

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

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

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

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

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

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

3 Αλληλεπίδραση Αντικειμένων

3 Αλληλεπίδραση Αντικειμένων Αφαίρεση και Αρθρωσιμότητα 3 Αλληλεπίδραση Αντικειμένων Πώς συνεργάζονται τα αντικείμενα που δημιουργούμε Αφαίρεση (abstraction) είναι η δυνατότητα να αγνοούμε τις λεπτομέρειες και να εστιάζουμε την προσοχή

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java III Το if-else statement Το if-else statement δουλεύει καλά όταν στο condition θέλουμε να περιγράψουμε μια επιλογή με δύο πιθανά ενδεχόμενα.

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

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός Παναγιώτης Σφέτσος sfetsos@it.teithe.gr Εντολές ελέγχου συγκρίσεων επιλογής ή διακλαδώσεων ( if switch) Μία από τις σημαντικότερες

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

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

Προγραμματισμός Ι. Κλάσεις και Αντικείμενα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Κλάσεις και Αντικείμενα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Κλάσεις Η γενική μορφή μιας κλάσης είναι η εξής: class class-name { private data and

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

ΕΠΛ233 Βιβλιοθήκες και Προσδιοριστές Πρόσβασης στην JAVA

ΕΠΛ233 Βιβλιοθήκες και Προσδιοριστές Πρόσβασης στην JAVA Βιβλιοθήκες και Προσδιοριστές Πρόσβασης στην JAVA 2 «Μονάδα Μετάφρασης» 2 «Μονάδα Μετάφρασης» Όταν δημιουργείται ένα αρχείο πηγαίου κώδικα στην Java, το αρχείο καλείται µονάδα µετάφρασης (compilation unit)

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

Κατακερματισμός. 4/3/2009 Μ.Χατζόπουλος 1

Κατακερματισμός. 4/3/2009 Μ.Χατζόπουλος 1 Κατακερματισμός 4/3/2009 Μ.Χατζόπουλος 1 H ιδέα που βρίσκεται πίσω από την τεχνική του κατακερματισμού είναι να δίνεται μια συνάρτησης h, που λέγεται συνάρτηση κατακερματισμού ή παραγωγής τυχαίων τιμών

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

Το πρόγραμμα HelloWorld.java. HelloWorld. Κλάσεις και Αντικείμενα (2) Ορισμός μιας Κλάσης (1) Παύλος Εφραιμίδης pefraimi ee.duth.

Το πρόγραμμα HelloWorld.java. HelloWorld. Κλάσεις και Αντικείμενα (2) Ορισμός μιας Κλάσης (1) Παύλος Εφραιμίδης pefraimi <at> ee.duth. Το πρόγραμμα HelloWorld.java Σχόλια στη Java HelloWorld Παύλος Εφραιμίδης pefraimi ee.duth.gr Java Το πρόγραμμα HelloWorld 1 Java Το πρόγραμμα HelloWorld 2 Σχόλια στη Java ΗγλώσσαJava υποστηρίζει

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

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

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

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

8. Μέθοδοι (Methods)

8. Μέθοδοι (Methods) 8. Μέθοδοι (Methods) Χειμερινό εξάμηνο 2012 Πέτρος Κωμοδρόμος komodromos@ucy.ac.cy http://www.eng.ucy.ac.cy/petros 1 Θέματα Μέθοδοι που παρέχονται από τη τάξη Math του Java API Χρήση στατικών μεθόδων και

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

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

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

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

Είσοδος και Έξοδος. (Input and Output) Διαφάνειες από τους Robert Sedgewick και Kevin Wayne. Τι θα δούµε σήµερα

Είσοδος και Έξοδος. (Input and Output) Διαφάνειες από τους Robert Sedgewick και Kevin Wayne. Τι θα δούµε σήµερα Είσοδος και Έξοδος (Input and Output) Διδάσκοντες: Νικόλας Νικολάου Εαρινό Εξάµηνο 2013/14 Τι θα δούµε σήµερα Συσκευές Εισόδου / Εξόδου Εκτύπωση στο StdOut Ανάγνωση δεδοµένων από Γραµµή Εντολής Ανάγνωση

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

Αντικείμενα (Objects) στην Java. Αντικείμενα στη Java. Δημιουργία Αντικειμένων. Δηλώσεις Μεταβλητών (2) Ο τελεστής new (1)

Αντικείμενα (Objects) στην Java. Αντικείμενα στη Java. Δημιουργία Αντικειμένων. Δηλώσεις Μεταβλητών (2) Ο τελεστής new (1) Αντικείμενα (Objects) στην Java Αντικείμενα στη Java Παύλος Εφραιμίδης Ένα πρόγραμμα Java κατά την εκτέλεσή του δημιουργεί αντικείμενα τα αντικείμενα αλληλεπιδρούν, στέλνοντας μηνύματα το ένα στο άλλο

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

Το ισχυρό πλεονέκτηµα των απλών µη ταξινοµηµένων πινάκων που είναι η γρήγορη εισαγωγή, αναιρείται αν απαγορεύονται τα διπλότυπα.

Το ισχυρό πλεονέκτηµα των απλών µη ταξινοµηµένων πινάκων που είναι η γρήγορη εισαγωγή, αναιρείται αν απαγορεύονται τα διπλότυπα. Πίνακες Η πιο βασική δοµή αποθήκευσης δεδοµένων Υποστηρίζεται από όλες τις γλώσσες προγραµµατισµού Συνεχόµενες θέσεις στην κύρια µνήµη Προσπέλαση µέσω δείκτη Στατική δοµή το µέγεθος ορίζεται εξαρχής και

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

Οικονοµικό Πανεπιστήµιο Αθηνών. Τµήµα Πληροφορικής. Φθινοπωρινό Εξάµηνο 2015. Δοµές Δεδοµένων - Εργασία 2. Διδάσκων: E. Μαρκάκης

Οικονοµικό Πανεπιστήµιο Αθηνών. Τµήµα Πληροφορικής. Φθινοπωρινό Εξάµηνο 2015. Δοµές Δεδοµένων - Εργασία 2. Διδάσκων: E. Μαρκάκης Οικονοµικό Πανεπιστήµιο Αθηνών Τµήµα Πληροφορικής Φθινοπωρινό Εξάµηνο 2015 Δοµές Δεδοµένων - Εργασία 2 Διδάσκων: E. Μαρκάκης Ταξινόµηση και Ουρές Προτεραιότητας Σκοπός της 2 ης εργασίας είναι η εξοικείωση

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

Στοιχεία εξεταζόµενου Αριθµός Απάντησης Βαθµολογία. Σύνολο (Θέµα 4 ο )

Στοιχεία εξεταζόµενου Αριθµός Απάντησης Βαθµολογία. Σύνολο (Θέµα 4 ο ) Οικονοµικό Πανεπιστήµιο Αθηνών Τµήµα Πληροφορικής Εισαγωγή στον Προγραµµατισµό των Υπολογιστών Καθηγητής Ι. Κάβουρας Εξεταστική περίοδος Φεβρουαρίου 2004 Τετάρτη 10/3/2004, ώρα 8.00 Στοιχεία εξεταζόµενου

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

ΕΛΛΗΝΙΚΗ ΕΤΑΙΡΕΙΑ ΕΠΙΣΤΗΜΟΝΩΝ ΚΑΙ ΕΠΑΓΓΕΛΜΑΤΙΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΜΕΛΟΣ IFIP, IOI

ΕΛΛΗΝΙΚΗ ΕΤΑΙΡΕΙΑ ΕΠΙΣΤΗΜΟΝΩΝ ΚΑΙ ΕΠΑΓΓΕΛΜΑΤΙΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΜΕΛΟΣ IFIP, IOI 20 ος ΠΑΝΕΛΛΗΝΙΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΛΥΣΕΙΣ ΘΕΜΑΤΩΝ ΤΕΛΙΚΗΣ ΦΑΣΗΣ Με εξαίρεση το 3ο θέμα, στα 2 πρώτα, υποβλήθηκαν περισσότερες από μία βέλτιστες λύσεις (100% σημείων επιτυχίας). Από αυτές τελείως

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

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

Εισαγωγή στον Προγ/μό Η/Υ Εισαγωγή στον Προγ/μό Η/Υ Ενότητα 7 2ο μέρος: Επιπλέον έννοιες σχετικά με αντικείμενα Διδάσκων: Μιχάλης Τίτσιας Περιεχόμενα Τι μπορεί να περιέχει μια τάξη Μέθοδοι τάξης και σταθερές τάξης Πολυμορφισμός

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

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

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

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

ιαδικτυακές Εφαρµογές

ιαδικτυακές Εφαρµογές ιαδικτυακές Εφαρµογές µε Java2 Στοιχεία ικτυακής Επικοινωνίας Όροι IP address 32bit αριθµός που χρησιµοποιείται από το Internet Protocol για την παράδοση δεδοµένων στο σωστό υπολογιστή στο δίκτυο. Port

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

Ουρά Προτεραιότητας: Heap

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

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

Κεφάλαιο 3. Αλγόριθµοι Τυφλής Αναζήτησης. Τεχνητή Νοηµοσύνη - Β' Έκδοση. Ι. Βλαχάβας, Π. Κεφαλάς, Ν. Βασιλειάδης, Φ. Κόκκορας, Η.

Κεφάλαιο 3. Αλγόριθµοι Τυφλής Αναζήτησης. Τεχνητή Νοηµοσύνη - Β' Έκδοση. Ι. Βλαχάβας, Π. Κεφαλάς, Ν. Βασιλειάδης, Φ. Κόκκορας, Η. Κεφάλαιο 3 Αλγόριθµοι Τυφλής Αναζήτησης Τεχνητή Νοηµοσύνη - Β' Έκδοση Ι. Βλαχάβας, Π. Κεφαλάς, Ν. Βασιλειάδης, Φ. Κόκκορας, Η. Σακελλαρίου Αλγόριθµοι Τυφλής Αναζήτησης Οι αλγόριθµοι τυφλής αναζήτησης (blind

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ηµιουργία και χειρισµός LIFO λιστών µεταβλητού µήκους µε στοιχεία ακεραίους αριθµούς. Γενίκευση για χειρισµό λιστών πραγµατικών

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

Διάλεξη 2. Μεταβλητές - Δομές Δεδομένων - Eίσοδος δεδομένων - Έξοδος: Μορφοποίηση - Συναρτήσεις. Διοργάνωση : ΚΕΛ ΣΑΤΜ

Διάλεξη 2. Μεταβλητές - Δομές Δεδομένων - Eίσοδος δεδομένων - Έξοδος: Μορφοποίηση - Συναρτήσεις. Διοργάνωση : ΚΕΛ ΣΑΤΜ Διάλεξη 2 Μεταβλητές - Δομές Δεδομένων - Eίσοδος δεδομένων - Έξοδος: Μορφοποίηση - Συναρτήσεις Διοργάνωση : ΚΕΛ ΣΑΤΜ Διαφάνειες: Skaros, MadAGu Παρουσίαση: MadAGu Άδεια: Creative Commons 3.0 2 Internal

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

Επανάληψη για τις Τελικές εξετάσεις

Επανάληψη για τις Τελικές εξετάσεις Επανάληψη για τις Τελικές εξετάσεις ( ιάλεξη 21) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Εισαγωγή Το µάθηµα EPL032 έχει ως βασικό στόχο την επίλυση προβληµάτων πληροφορικής µε την χρήση της γλώσσας προγραµµατισµού

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

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός. Παναγιώτης Σφέτσος sfetsos@it.teithe.gr

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός. Παναγιώτης Σφέτσος sfetsos@it.teithe.gr ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός Παναγιώτης Σφέτσος sfetsos@it.teithe.gr ΕΡΓΑΣΤΗΡΙΟ - 9 Σ υ μ β ο λ ο σ ε ι ρ έ ς - S t r i n g s Προσοχή!!! Να εκτελεστούν

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

Περιεχόμενα. Πρόλογος 11

Περιεχόμενα. Πρόλογος 11 Περιεχόμενα Πρόλογος 11 1 Εισαγωγή 19 1.1 Πριν από την ανάγνωση αυτού του βιβλίου 20 1.2 Μια θεώρηση του υπολογιστή 22 1.3 Εφαρμογές και μικροεφαρμογές Java 24 1.4 JavaScript και JSP 26 1.5 Η δομή του

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

Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα

Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα ΝΗΜΑΤΑ ΣΤΗ JAVA (1) Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα πρόγραµµα. Αιτία Η δυνατότητα αποµόνωσης (ή αυτονόµησης) κάποιων

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

ΑΣΚΗΣΗ 1. Structural Programming

ΑΣΚΗΣΗ 1. Structural Programming ΑΣΚΗΣΗ 1 Structural Programming Στην άσκηση αυτή θα υλοποιήσετε σε C ένα απλό πρόγραµµα Βάσης εδοµένων το οποίο θα µπορούσε να χρησιµοποιηθεί από την γραµµατεία ενός πανεπιστηµίου για την αποθήκευση και

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

Περιεχόμενα. Πρόλογος... 17

Περιεχόμενα. Πρόλογος... 17 Περιεχόμενα Πρόλογος... 17 Κεφάλαιο 1: Εισαγωγή... 19 Πώς να διαβάσετε αυτό το βιβλίο... 20 Η γλώσσα C Ιστορική αναδρομή... 22 Τα χαρακτηριστικά της C... 23 C Μια δομημένη γλώσσα... 23 C Μια γλώσσα για

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

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

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

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

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εργαστήριο 9η εβδομάδα. Κοζάνη, 2 Δεκεμβρίου 2008. Δίνονται παραδείγματα που αποσαφηνίζουν και συμπληρώνουν όσα αναφέρθηκαν στο μάθημα σχετικά με τις δομές

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

Μέθοδοι. Μέθοδοι ηµιουργοί, Υπερφόρτωση και Υπέρβαση Μεθόδων

Μέθοδοι. Μέθοδοι ηµιουργοί, Υπερφόρτωση και Υπέρβαση Μεθόδων Μέθοδοι Μέθοδοι ηµιουργοί, Υπερφόρτωση και Υπέρβαση Μεθόδων Μέθοδοι Οιµέθοδοικαθορίζουντηνσυµπεριφοράενόςαντικειµένου. Τα βασικά µέρη από τα οποία αποτελείται µία µέθοδος είναι τα εξής: Το όνοµα της µεθόδου

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εξαιρέσεις

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

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

Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης. Threads in Java ΝΗΜΑΤΑ ΣΤΗ JAVA

Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης. Threads in Java ΝΗΜΑΤΑ ΣΤΗ JAVA Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης Threads in Java ΝΗΜΑΤΑ ΣΤΗ JAVA 1. Εισαγωγή Τι είναι Νήµα; Κάθε νήµα εκτέλεσης είναι ουσιαστικά

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

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

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 18 Dijkstra s Shortest Path Algorithm 1 / 12 Ο αλγόριθμος εύρεσης της συντομότερης διαδρομής του Dijkstra

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

Προγραµµατισµός JAVA. ρ Γεώργιος Μαυροµµάτης Πειραιάς 2004

Προγραµµατισµός JAVA. ρ Γεώργιος Μαυροµµάτης Πειραιάς 2004 Προγραµµατισµός JAVA ρ Γεώργιος Μαυροµµάτης Πειραιάς 2004 Αλγόριθµος Ένας Αλγόριθµος είναι µία καλά ορισµένη υπολογιστική διαδικασία που δέχεται κάποιες τιµές σαν είσοδο και παράγει κάποιες τιµές σαν έξοδο.

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

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

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

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