Δομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής
|
|
- Μνημοσύνη Παπανδρέου
- 7 χρόνια πριν
- Προβολές:
Transcript
1 Ενότητα 5: Δείκτες και Δυναμική Δέσμευση- Αποδέσμευση Μνήμης στη C/ Υλοποίηση ΑΤΔ Συνδεδεμένη Λίστα με δείκτες /Ένα πακέτο για τον ΑΤΔ Συνδεδεμένη Λίστα Καθηγήτρια Μαρία Σατρατζέμη
2 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2
3 Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Μακεδονίας» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3
4 Σκοποί ενότητας[1] Να κατανοήσουν : την έννοια της μεταβλητής τύπου δείκτη Τη δήλωση μεταβλητής τύπου δείκτη Τις λειτουργίες που εκτελούν οι δείκτες και οι ανώνυμες μεταβλητές Η διαφορά μεταξύ της μεταβλητής τύπου δείκτη και της μεταβλητής στην οποία αναφέρεται ο δείκτης 4
5 Σκοποί ενότητας[2] Να μελετηθεί η Υλοποίηση της συνδεδεμένης λίστας με δείκτες καθώς και η υλοποίηση των πράξεων της Δημιουργίας & ελέγχου της κενής συνδεδεμένης λίστας και της Διάσχισης συνδεδεμένης λίστας. Να κατανοήσει την υλοποίηση του βασικών λειτουργιών της ΣΛ με τη χρήση δεικτών 5
6 Περιεχόμενα ενότητας[1] Εισαγωγή Οι συναρτήσεις malloc, free Δήλωση & παράδειγμα μεταβλητή δείκτη Ανώνυμες/δυναμικές μεταβλητές Η σταθερά δείκτη NULL Λειτουργίες που εκτελούνται με δείκτες Ανάθεση τιμής, σχεσιακοί τελεστές Εκφράσεις σύγκρισεις 6
7 Περιεχόμενα ενότητας[2] Υλοποίηση συνδεδεμένης λίστας με δείκτες Δημιουργία & έλεγχος κενής συνδεδεμένης λίστας Διάσχιση συνδεδεμένης λίστας 7
8 Περιεχόμενα ενότητας[3] Πακέτο για τον ΑΤΔ Συνδεδεμένη Λίστα με δείκτες Δημιουργία Έλεγχος κενής ΣΛ Εισαγωγή στοιχείου Διαγραφή στοιχείου Διάσχιση Αναζήτηση στοιχείου σε ΣΛ 8
9 Δείκτες και Δυναμική Δέσμευση/ Αποδέσμευση Μνήμης στη C 9
10 Εισαγωγή -1- Από τον ορισμό της λίστας ως αφηρημένος τύπος δεδομένων προκύπτει ότι θεωρητικά μπορεί να εισαχθεί απεριόριστο πλήθος στοιχείων σ' αυτήν. Κατά συνέπεια, οποιαδήποτε υλοποίηση λίστας που χρησιμοποιεί πίνακα για την αποθήκευση των στοιχείων της δεν θα είναι πιστή αναπαράσταση λίστας, γιατί ένας πίνακας έχει σταθερό μέγεθος το οποίο δεν μπορεί να αλλάξει από τη στιγμή που θα ορισθεί και μετά. 10
11 Εισαγωγή -2- Μια πιο πιστή υλοποίηση λίστας θα πρέπει να έχει τη δυνατότητα δέσμευσης και αποδέσμευσης θέσεων μνήμης για τους κόμβους δυναμικά κατά τη διάρκεια εκτέλεσης του προγράμματος, χωρίς να χρειάζεται να είναι προκαθορισμένο το όριο μεγέθους της δεξαμενής κόμβων πριν την εκτέλεση του προγράμματος ή γενικώς πριν την εισαγωγή στοιχείου. Η δυνατότητα αυτή υπάρχει στην C και παρέχεται από τις προκαθορισμένες συναρτήσεις malloc και free (ορίζονται στην stdilb.h) που χρησιμοποιούνται σε συνδυασμό με τους τύπους δεδομένων. 11
12 Η συνάρτηση malloc Η συνάρτηση malloc χρησιμοποιείται για να δεσμεύει θέσεις μνήμης κατά τη διάρκεια εκτέλεσης του προγράμματος. Όταν κληθεί, επιστρέφει τη διεύθυνση μιας θέσης μνήμης στην οποία μπορεί να αποθηκευτεί μια τιμή. Για να αναφερόμαστε σ' αυτήν τη θέση μνήμης και να μπορούμε να αποθηκεύουμε δεδομένα και να τα ανακτούμε από αυτήν, χρησιμοποιούμε ένα ειδικό είδος μεταβλητής, που ονομάζεται μεταβλητή δείκτης ή απλά δείκτης και η τιμή της είναι η διεύθυνση μιας θέσης μνήμης. 12
13 Δήλωση μεταβλητής δείκτη Ο τύπος μιας μεταβλητής δείκτη που χρησιμοποιείται για αναφορά στη θέση μνήμης όπου είναι αποθηκευμένη κάποια τιμή πρέπει να οριστεί ως: type-identifier* identifier ή type-identifier *identifier όπου type-identifier είναι ο τύπος δεδομένων της τιμής που αποθηκεύεται. Πχ int* p; ή int *p; Ο δείκτης είναι δεσμευμένος σε αυτόν τον τύπο δεδομένων και δεν γίνεται να αποθηκευτούν δεδομένα άλλων τύπων στη θέση μνήμης στην οποία αναφέρεται. 13
14 Παράδειγμα μεταβλητής δείκτη -1- Για παράδειγμα, αν τα δεδομένα είναι ακέραιοι, τότε ένας δείκτης σε μια θέση μνήμης, που μπορεί να χρησιμοποιηθεί για να αποθηκευτεί ένας ακέραιος, μπορεί να δηλωθεί ως εξής: int *p1; Αυτή η μεταβλητή δείκτη p1 είναι δεσμευμένη στον τύπο int και μπορεί να χρησιμοποιηθεί μόνο για να αναφέρεται σε θέσεις μνήμης στις οποίες μπορούν να αποθηκευτούν τιμές αυτού του τύπου. Η p1 αναφέρεται ως μεταβλητή δείκτης προς int (ακέραιο) ή δείκτης προς int.. 14
15 Παράδειγμα μεταβλητής δείκτη -2- Η συνάρτηση malloc μπορεί να χρησιμοποιηθεί για την απόκτηση μιας τέτοιας θέσης μνήμη κατά την εκτέλεση του προγράμματος. Η κλήση της συνάρτησης malloc είναι της μορφής: p1 = malloc(sizeof(int)); και καταχωρεί τη διεύθυνση μιας θέσης μνήμης στον δείκτη p1. Επομένως, η εντολή p1 = malloc(sizeof(int)); καταχωρεί μια διεύθυνση μνήμης, π.χ. 946, στη μεταβλητή p1. 15
16 Παράδειγμα μεταβλητής δείκτη -3- Δηλαδή ο δείκτης p1 κρατά την τιμή της θέσης μνήμης στην οποία είναι αποθηκευμένος ένας ακέραιος, και όχι ο ίδιος ο ακέραιος. Μάλιστα μπορεί αυτή η θέση μνήμης να είναι η θέση της πρώτης λέξης σε ένα μπλοκ διαδοχικών θέσεων μνήμης, όπως όταν ο δείκτης δείχνει σε εγγραφή, πίνακα κτλ 16
17 Ανώνυμες/δυναμικές μεταβλητές Η προαναφερθείσα περιοχή μνήμης μπορεί να χρησιμοποιηθεί για να αποθηκεύει τιμές τύπου int, είναι μια μεταβλητή, η οποία όμως δεν έχει όνομα. Τέτοιες μεταβλητές ονομάζονται ανώνυμες μεταβλητές (anonymous variables) και οι δείκτες δείχνουν σε ανώνυμες μεταβλητές. Επειδή οι μεταβλητές αυτές υπάρχουν κατά τη διάρκεια εκτέλεσης του προγράμματος και μπορεί να πάψουν να υπάρχουν αργότερα, ονομάζονται και δυναμικές μεταβλητές (dynamic variables). 17
18 Η σταθερά δείκτη NULL -1- Κάθε κλήση της malloc αποκτά μια νέα θέση μνήμης και καταχωρεί τη διεύθυνσή της στον συγκεκριμένο δείκτη. Έτσι, λοιπόν, αν η TempPtr είναι επίσης τύπου int, τότε η εντολή tempptr = malloc(sizeof(int)); αποκτά μια νέα θέση μνήμης στην οποία δείχνει ο TempPtr: 18
19 Η σταθερά δείκτη NULL -2- Η C παρέχει την ειδική σταθερά δείκτη NULL για την περίπτωση που θέλουμε να καταχωρήσουμε μια τιμή σε μια μεταβλητή δείκτη που δεν δείχνει σε καμιά θέση μνήμης. Αυτή η τιμή μπορεί να καταχωρηθεί σε δείκτη οποιουδήποτε τύπου με μια εντολή της μορφής: pointer = NULL; Όπως είναι αναμενόμενο ένας τέτοιος δείκτης θα συμβολίζεται απλά με μια τελεία: pointer 19
20 Λειτουργίες που εκτελούνται με τιμές δεικτών Οι τιμές των δεικτών είναι διευθύνσεις μνήμης, οι λειτουργίες που μπορούν να εκτελεστούν σ' αυτές : ανάθεση τιμής σύγκριση με τους σχεσιακούς τελεστές == και!=. 20
21 Ανάθεση τιμής -1- Αν οι δείκτες ptr1 και ptr2 και είναι δεσμευμένοι στον ίδιο τύπο, τότε μια εντολή ανάθεσης τιμής της μορφής: ptr1 = ptr2; καταχωρεί την τιμή του ptr2 στον ptr1, οπότε και οι δυο δείχνουν στην ίδια θέση μνήμης. Η θέση στην οποία έδειχνε πρωτύτερα ο ptr1 δεν είναι πλέον προσπελάσιμη εκτός και αν κάποιος άλλος δείκτης δείχνει σ' αυτήν. 21
22 Ανάθεση τιμής -2- Παράδειγμα: έστω ότι δυο δείκτες, οι p1 και tempptr, είναι δηλωμένοι τύπου int και δείχνουν σε δυο θέσεις μνήμης που περιέχουν τις τιμές 22 και 100, αντίστοιχα. 22
23 Ανάθεση τιμής -3- Μια εντολή ανάθεσης tempptr = p1 ; αναθέτει την τιμή της p1 στην tempptr οπότε η tempptr δείχνει στην θέση μνήμης που δείχνει και η p1. Τώρα δεν έχουμε πλέον πρόσβαση στη μεταβλητή *tempptr, δηλαδή στο 100, εκτός και αν κάποιος άλλος δείκτης δείχνει εκεί. 23
24 Σχεσιακοί τελεστές Οι σχεσιακοί τελεστές == και!= χρησιμοποιούνται για να συγκριθούν δυο δείκτες δεσμευμένοι στον ίδιο τύπο δεδομένων για να καθοριστεί αν και οι δύο δείχνουν στην ίδια θέση μνήμης ή αν είναι και οι δύο μηδενικοί. Η boolean έκφραση p1 == tempptr είναι έγκυρη και είναι αληθής αν και μόνο αν οι p1 και tempptr δείχνουν στην ίδια θέση μνήμης ή έχουν τιμή NULL. Επίσης, η έκφραση p1!= NULL είναι κι αυτή μια έγκυρη boolean έκφραση. 24
25 Δείκτες ως παράμετροι/τιμές συνάρτησης Οι δείκτες μπορούν να χρησιμοποιηθούν και ως παράμετροι σε συναρτήσεις και διαδικασίες. Οι παράμετροι μπορεί να είναι είτε τιμές είτε μεταβλητές, όμως οι αντίστοιχοι δείκτες τυπικοί παράμετροι πρέπει να είναι δεσμευμένοι στον ίδιο τύπο. Ακόμα και η τιμή μιας συνάρτησης μπορεί να είναι ένας δείκτης. Για να αναφερθούμε στην τιμή που είναι αποθηκευμένη στη θέση μνήμης όπου δείχνει ένας δείκτης, χρησιμοποιούμε τo σύμβολα * πριν από το όνομα του δείκτη: *pointer. 25
26 Ανάθεση τιμής -4- Έστω, για παράδειγμα, ότι έχουμε δηλώσει ένα δείκτη p1 τύπου int, ο οποίος δείχνει στη θέση μνήμης 2645 και θέλουμε να εκχωρήσουμε τη τιμή 22. Τότε: *p1 = 22 Ένας μηδενικός ή μη ορισμένος δείκτης, όμως, δεν αναφέρεται σε καμιά θέση μνήμης, οπότε οποιαδήποτε προσπάθεια χρησιμοποίησής του είναι σφάλμα. 26
27 Ανάθεση τιμής -5- Αν οι p1 και tempptr είναι μη μηδενικοί δείκτες τύπου int με *p1=22 και *tempptr =100, τότε η εντολή *p1 = *tempptr; είναι μια έγκυρη εντολή ανάθεσης τιμής, αφού και οι δυο δυναμικές μεταβλητές *p1 και *tempptr υπάρχουν και είναι του ίδιου τύπου. Η εντολή αυτή αντιγράφει το περιεχόμενο της θέσης μνήμης στην οποία δείχνει η p1 στην θέση μνήμης στην οποία δείχνει η tempptr 27
28 Ανάθεση τιμής -6- Η παραπάνω εντολή διαφέρει πολύ από την p1 = tempptr; η οποία δίνει την τιμή της p1 στην tempptr με αποτέλεσμα να δείχνουν και οι δυο στην ίδια θέση μνήμης. 28
29 Εκφράσεις σύγκρισης -1- Επίσης, διαφορετική είναι η τιμή των boolean εκφράσεων σύγκρισης p1 == tempptr; *p1 == *tempptr; Η πρώτη έκφραση είναι αληθής αν και μόνο αν οι δείκτες p1 και tempptr δείχνουν στην ίδια θέση μνήμης, ενώ η δεύτερη έκφραση συγκρίνει τον ακέραιο που είναι αποθηκευμένος στη θέση μνήμης στην οποία δείχνει o p1 με τον ακέραιο που είναι αποθηκευμένος στη θέση μνήμης στην οποία δείχνει ο tempptr. 29
30 Εκφράσεις σύγκρισης -2- Προφανώς: αν η p1 == tempptr; είναι αληθής και οι δυο δείκτες δεν είναι μηδενικοί, τότε και η *p1 == *tempptr; είναι αληθής. Το αντίστροφο όμως δεν ισχύει. Δηλαδή, αν *p1 == *tempptr; δεν σημαίνει ότι οι p1 και tempptr δείχνουν στην ίδια θέση μνήμης, αλλά απλά τα περιεχόμενά τους είναι ίδια. Τέλος, αν κάποιος από τους δύο δείκτες είναι μηδενικός, τότε η έκφραση p1 == tempptr είναι έγκυρη, όχι όμως και η *p1 == *tempptr δεν είναι έγκυρη. 30
31 Αποδέσμευση θέσης μνήμης Αν η θέση μνήμης στην οποία δείχνει ένας δείκτης δεν χρειάζεται πλέον, μπορεί να ελευθερωθεί και να γίνει διαθέσιμη για να δεσμευτεί αργότερα με κλήση της διαδικασίας free ως εξής: free(pointer); Η διαδικασία αυτή ελευθερώνει τη θέση μνήμης στην οποία δείχνει η pointer και αφήνει τη μεταβλητή pointer μη ορισμένη. 31
32 Υλοποίηση ΑΤΔ Συνδεδεμένη Λίστα με δείκτες 32
33 Υλοποίηση συνδεδεμένης λίστας με δείκτες -1- Στην υλοποίηση των συνδεδεμένων λιστών με πίνακα χρησιμοποιήσαμε εγγραφές ως τη βασική αποθηκευτική δομή για τους κόμβους. Έτσι και εδώ θα χρησιμοποιήσουμε πάλι εγγραφές με πεδία Data και Next. Ο τύπος δεδομένων του πεδίου Data θα είναι αυτός που είναι κατάλληλος για την αποθήκευση των δεδομένων και στο πεδίο Next θα αποθηκεύεται ένας δεσμός που θα δείχνει στο επόμενο στοιχείο της λίστας. Τώρα, όμως, ο δεσμός αυτός θα είναι ένας δείκτης και όχι ένας αριθμοδείκτης πίνακα.. 33
34 Υλοποίηση συνδεδεμένης λίστας με δείκτες -2- Υλοποίηση συνδεδεμένης λίστας με δείκτες: typedef int ListElementType; /*ο τύπος των στοιχείων της λίστας*/ typedef struct ListNode *ListPointer; typedef struct ListNode { ListElementType Data; ListPointer Next; } ListNode; Ο ορισμός του αναγνωριστικού ListPointer προηγείται του ορισμού τού τύπου ListNode. 34
35 Δημιουργία & έλεγχος κενής συνδεδεμένης λίστας -1- Το πλεονέκτημα αυτής της υλοποίησης είναι ότι δεν χρειαζόμαστε μια δεξαμενή διαθέσιμων κόμβων, μπορούμε να χρησιμοποιήσουμε τις συναρτήσεις malloc και free, για απόκτηση και απελευθέρωση μνήμης αντίστοιχα, αντί για τις GetNode και ReleaseNode. 35
36 Δημιουργία & έλεγχος κενής συνδεδεμένης λίστας -2- Για τη δημιουργία μιας κενής συνδεδεμένης λίστας, αναθέτουμε απλά την τιμή NULL σε μια μεταβλητή List τύπου ListPointer, List = NULL; η οποία διατηρεί την πρόσβαση στον πρώτο κόμβο της συνδεδεμένης λίστας. 36
37 Δημιουργία & έλεγχος κενής συνδεδεμένης λίστας -3- Για να ελέγξουμε αν μια συνδεδεμένη λίστα είναι κενή, μπορούμε απλά να εξετάσουμε αν η List έχει τιμή NULL: List == NULL; 37
38 Διάσχιση συνδεδεμένης λίστας Για τη διάσχιση μιας συνδεδεμένης λίστας υλοποιημένης με δείκτες, αρχικοποιούμε έναν δείκτη CurrPtr να δείχνει στον πρώτο κόμβο της συνδεδεμένης λίστας και στη συνέχεια παίρνει τις τιμές των δεσμών των κόμβων και διατρέχει τη λίστα. CurrPtr = List; while (CurrPtr!= NULL) { /*Εδώ παρεμβάλλονται οι απαραίτητες εντολές για την επεξεργασία του CurrPtr->Data*/ CurrPtr = CurrPtr->Next; } 38
39 Ένα πακέτο για τον ΑΤΔ Συνδεδεμένη Λίστα 39
40 Πακέτο για τον ΑΤΔ Συνδεδεμένη Λίστα με δείκτες -1- typedef int ListElementType; /*ο τύπος των στοιχείων της συνδεδεμένης λίστας*/ typedef struct ListNode *ListPointer; /*ο τύπος των δεικτών για τους κόμβους*/ typedef struct ListNode { ListElementType Data; ListPointer Next; } ListNode; typedef enum { FALSE, TRUE } boolean;. 40
41 Πακέτο για τον ΑΤΔ Συνδεδεμένη Λίστα με δείκτες -2- void CreateList(ListPointer *List); boolean EmptyList(ListPointer List); void LinkedInsert(ListPointer *List, ListElementType Item, ListPointer PredPtr); void LinkedDelete(ListPointer *List, ListPointer PredPtr); void LinkedTraverse(ListPointer List); void LinearSearch(ListPointer List, ListElementType Item, ListPointer *PredPtr, boolean *Found); void OrderedLimearSearch(ListPointer List, ListElementType Item, ListPointer *PredPtr, boolean *Found);. 41
42 Πακέτο για τον ΑΤΔ Συνδεδεμένη Λίστα με δείκτες -3- void CreateList (ListPointer *List) /*Λειτουργία: Δημιουργεί μια κενή συνδεδεμένη λίστα. Επιστρέφει: Τον μηδενικό δείκτη List.*/ { List = NULL; } 42
43 Πακέτο για τον ΑΤΔ Συνδεδεμένη Λίστα με δείκτες -4- boolean EmptyList((ListPointer List) /*Δέχεται: Μια συνδεδεμένη λίστα με τον List να δείχνει στον πρώτο κόμβο. Λειτουργία: Ελέγχει αν η συνδεδεμένη λίστα είναι κενή. Επιστρέφει: TRUE αν η λίστα είναι κενή και FALSE διαφορετικά.*/ { return List == NULL; }. 43
44 Πακέτο για τον ΑΤΔ Συνδεδεμένη Λίστα με δείκτες -5- void LinkedTraverse(ListPointer List) /*Δέχεται: Μια συνδεδεμένη λίστα με τον List να δείχνει στον πρώτο κόμβο. Λειτουργία: Διασχίζει τη συνδεδεμένη λίστα και επεξεργάζεται κάθε δεδομένο ακριβώς μια φορά. Επιστρέφει: Εξαρτάται από το είδος της επεξεργασίας.*/ 44
45 Πακέτο για τον ΑΤΔ Συνδεδεμένη Λίστα με δείκτες -6- { }. ListPointer CurrPtr; CurrPtr = List; while (CurrPtr!= NULL) { /*Εδώ παρεμβάλλονται οι απαραίτητες εντολές για την επεξεργασία του CurrPtr->Data*/ CurrPtr = CurrPtr->Next } 45
46 Πακέτο για τον ΑΤΔ Συνδεδεμένη Λίστα με δείκτες -7- void LinearSearch (ListPointer List, ListElementType Item, ListPointer *PredPtr, boolean *Found); /*Δέχεται: Μια συνδεδεμένη λίστα με τον List να δείχνει στον πρώτο κόμβο. Λειτουργία: Εκτελεί μια γραμμική αναζήτηση στην μη ταξινομημένη συνδεδεμένη λίστα για έναν κόμβο που να περιέχει το στοιχείο Item. Επιστρέφει: Αν η αναζήτηση είναι επιτυχής η Found είναι TRUE, ο CurrPtr δείχνει στον κόμβο που περιέχει το Item και ο PredPtr στον προηγούμενό του ή είναι NULL αν δεν υπάρχει προηγούμενος. Αν η αναζήτηση δεν είναι επιτυχής η Found είναι FALSE.*/. 46
47 Πακέτο για τον ΑΤΔ Συνδεδεμένη Λίστα με δείκτες -8- { } ListPointer CurrPtr = List; *PredPtr = NULL; *Found=FALSE; while (!(*Found) && CurrPtr!= NULL ) if (CurrPtr->Data==Item ) *Found=TRUE; else { *PredPtr = CurrPtr; CurrPtr = CurrPtr->Next; } } 47
48 void OrderedLimearSearch(ListPointer List, ListElementType Item, ListPointer *PredPtr, boolean *Found); /*Δέχεται: Ένα στοιχείο Item και μια ταξινομημένη συνδεδεμένη λίστα, που περιέχει στοιχεία δεδομένων σε αύξουσα διάταξη και στην οποία ο δείκτης List δείχνει στον πρώτο κόμβο.. Πακέτο για τον ΑΤΔ Συνδεδεμένη Λίστα με δείκτες -9- Λειτουργία: Εκτελεί γραμμική αναζήτηση της συνδεδεμένης ταξινομημένης λίστας για τον πρώτο κόμβο που περιέχει το στοιχείο Item ή για μια θέση για να εισάγει ένα νέο κόμβο που να περιέχει το στοιχείο Item. Επιστρέφει: Αν η αναζήτηση είναι επιτυχής η Found είναι TRUE, ο CurrPtr δείχνει στον κόμβο που περιέχει το Item και ο PredPtr στον προηγούμενό του ή είναι NULL αν δεν υπάρχει προηγούμενος. Αν η αναζήτηση δεν είναι επιτυχής η Found είναι FALSE.*/ 48
49 Πακέτο για τον ΑΤΔ Συνδεδεμένη Λίστα με δείκτες -10- { } ListPointer CurrPtr; boolean DoneSearching; CurrPtr = List; *PredPtr = NULL; DoneSearching = FALSE; *Found = FALSE; while (!DoneSearching && CurrPtr!=NULL ) { if (CurrPtr->Data >= Item { DoneSearching = TRUE; *Found = (CurrPtr->Data == Item); } else { *PredPtr = CurrPtr; CurrPtr = CurrPtr->Next; } } 49
50 void LinkedInsert(ListPointer *List, ListElementType Item, ListPointer PredPtr); /*Δέχεται: Μια συνδεδεμένη λίστα με τον List να δείχνει στον πρώτο κόμβο, ένα στοιχείο δεδομένων Item και έναν δείκτη PredPtr. Λειτουργία: Εισάγει έναν κόμβο, που περιέχει το Item, στην συνδεδεμένη λίστα μετά από τον κόμβο που δεικτοδοτείται από τον PredPtr ή στην αρχή της συνδεδεμένης λίστας, αν ο PredPtr είναι μηδενικός(null). Επιστρέφει: Την τροποποιημένη συνδεδεμένη λίστα με τον πρώτο κόμβο της να δεικτοδοτείται από τον List.*/. Πακέτο για τον ΑΤΔ Συνδεδεμένη Λίστα με δείκτες
51 Πακέτο για τον ΑΤΔ Συνδεδεμένη Λίστα με δείκτες -12- { } ListPointer TempPtr; TempPtr = (ListPointer)malloc(sizeof(struct ListNode)); TempPtr->Data = Item; if (PredPtr == NULL) { TempPtr->Next = *List; *List = TempPtr; } else { TempPtr->Next = PredPtr->Next; PredPtr->Next = TempPtr; } 51
52 Πακέτο για τον ΑΤΔ Συνδεδεμένη Λίστα με δείκτες -13- void LinkedDelete(ListPointer *List, ListPointer PredPtr); /*Δέχεται: Μια συνδεδεμένη λίστα με τον List να δείχνει στον πρώτο κόμβο της και έναν δείκτη PredPtr. Λειτουργία: Διαγράφει από τη συνδεδεμένη λίστα τον κόμβο που έχει για προηγούμενό του αυτόν στον οποίο δείχνει ο PredPtr ή διαγράφει τον πρώτο κόμβο, αν ο PredPtr είναι μηδενικός, εκτός και αν η λίστα είναι κενή. Επιστρέφει: Την τροποποιημένη συνδεδεμένη λίστα με τον πρώτο κόμβο να δεικτοδοτείται από τον List. Έξοδος: Ένα μήνυμα κενής λίστας αν η συνδεδεμένη λίστα ήταν κενή*/. 52
53 Πακέτο για τον ΑΤΔ Συνδεδεμένη Λίστα με δείκτες -14- { } ListPointer TempPtr; if (EmptyList(*List)) printf("empty LIST\n"); else { if (PredPtr == NULL) { TempPtr = *List; *List = TempPtr->Next; } else { TempPtr = PredPtr->Next; PredPtr->Next = TempPtr->Next; } free(tempptr); } 53
54 Τέλος Ενότητας
Δομές Δεδομένων. Ενότητα 7: Άλλες παραλλαγές Συνδεδεμένων Λιστών-Παράσταση Αραιού Πολυωνύμου με Συνδεδεμένη Λίστα. Καθηγήτρια Μαρία Σατρατζέμη
Ενότητα 7: Άλλες παραλλαγές Συνδεδεμένων Λιστών-Παράσταση Αραιού Πολυωνύμου με Συνδεδεμένη Λίστα Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative
Διαβάστε περισσότεραΔομές Δεδομένων. Ενότητα 4: Ο ΑΤΔ Λίστα & Υλοποίηση Λίστας με σειριακή αποθήκευση- Ο ΑΤΔ Συνδεδεμένη Λίστα- Υλοποίηση ΑΤΔ Συνδεδεμένη Λίστα με πίνακα
Ενότητα 4: Ο ΑΤΔ Λίστα & Υλοποίηση Λίστας με σειριακή αποθήκευση- Ο ΑΤΔ Συνδεδεμένη Λίστα- Υλοποίηση ΑΤΔ Συνδεδεμένη Λίστα με πίνακα Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό
Διαβάστε περισσότεραΔομές Δεδομένων. Ενότητα 6: Εφαρμογή Συνδεδεμένων Λιστών: Αλφαβητικό ευρετήριο κειμένου- Υλοποίηση ΑΤΔ Στοίβα και Ουρά με δείκτες
Ενότητα 6: Εφαρμογή Συνδεδεμένων Λιστών: Αλφαβητικό ευρετήριο κειμένου- Υλοποίηση ΑΤΔ Στοίβα και Ουρά με δείκτες Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες
Διαβάστε περισσότεραΔομές Δεδομένων. Ενότητα 1: Εισαγωγή-Υλοποίηση του ΑΤΔ Σύνολο με Πίνακα. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής.
Ενότητα 1: Εισαγωγή-Υλοποίηση του ΑΤΔ Σύνολο με Πίνακα Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες,
Διαβάστε περισσότεραΔομές Δεδομένων. Ενότητα 2: Στοίβες Εισαγωγή-Υλοποίηση ΑΤΔ Στοίβα με Πίνακα-Εφαρμογή Στοίβας: Αντίστροφη Πολωνική Γραφή. Καθηγήτρια Μαρία Σατρατζέμη
Ενότητα 2: Στοίβες Εισαγωγή-Υλοποίηση ΑΤΔ Στοίβα με Πίνακα-Εφαρμογή Στοίβας: Αντίστροφη Πολωνική Γραφή Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative
Διαβάστε περισσότεραΔομές Δεδομένων. Ενότητα 3: Ουρές Εισαγωγή-Υλοποίηση ΑΤΔ Ουρά με πίνακα. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής.
Ενότητα 3: Ουρές Εισαγωγή-Υλοποίηση ΑΤΔ Ουρά με πίνακα Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες,
Διαβάστε περισσότεραΔομές Δεδομένων. Ενότητα 12: Κατακερματισμός: Χειρισμός Συγκρούσεων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής.
Ενότητα 12: Κατακερματισμός: Χειρισμός Συγκρούσεων Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες,
Διαβάστε περισσότεραΔομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής
Ενότητα 8: Γραμμική Αναζήτηση και Δυαδική Αναζήτηση-Εισαγωγή στα Δέντρα και Δυαδικά Δέντρα-Δυαδικά Δέντρα Αναζήτησης & Υλοποίηση ΔΔΑ με δείκτες Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό
Διαβάστε περισσότεραΔομές Δεδομένων. Ενότητα 10: Πλήρη Δυαδικά Δέντρα, Μέγιστα/Ελάχιστα Δέντρα & Εισαγωγή στο Σωρό- Ο ΑΤΔ Μέγιστος Σωρός. Καθηγήτρια Μαρία Σατρατζέμη
Ενότητα 10: Πλήρη Δυαδικά Δέντρα, Μέγιστα/Ελάχιστα Δέντρα & Εισαγωγή στο Σωρό- Ο ΑΤΔ Μέγιστος Σωρός Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative
Διαβάστε περισσότεραΔομημένος Προγραμματισμός
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Δομημένος Προγραμματισμός Ενότητα: Συναρτήσεις θεωρία Δ. Ε. Μετάφας Τμ. Ηλεκτρονικών Μηχ. Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό
Διαβάστε περισσότεραΦροντιστήριο 4 Σκελετοί Λύσεων
Φροντιστήριο 4 Σκελετοί Λύσεων 1. Ο ζητούμενος ΑΤΔ μπορεί να υλοποιηθεί ως εξής: (i) Διαδοχική χορήγηση μνήμης Υποθέτουμε ότι οι λίστες μας έχουν μέγιστο μέγεθος max και χρησιμοποιούμε τη δομή type elements[max];
Διαβάστε περισσότεραΔιαδικαστικός Προγραμματισμός
Διαδικαστικός Προγραμματισμός Ενότητα 8: Παραδείγματα με μονοδιάστατους πίνακες, συναρτήσεις, δείκτες, πέρασμα παραμέτρων με αναφορά Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό
Διαβάστε περισσότεραΕισαγωγή στον δομημένο προγραμματισμό
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Εισαγωγή στον δομημένο προγραμματισμό Ενότητα 12 η : Δυναμική Ανάθεση Θέσης Αν. καθηγητής Στεργίου Κώστας e-mail: kstergiou@uowm.gr Τμήμα Μηχανικών Πληροφορικής
Διαβάστε περισσότεραΕΠΛ232 Προγραμματιστικές Τεχνικές και Εργαλεία Δυναμική Δέσμευση Μνήμης και Δομές Δεδομένων (Φροντιστήριο)
ΕΠΛ232 Προγραμματιστικές Τεχνικές και Εργαλεία Δυναμική Δέσμευση Μνήμης και Δομές Δεδομένων (Φροντιστήριο) Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου http://www.cs.ucy.ac.cy/courses/epl232 Το μάθημα αυτό
Διαβάστε περισσότεραΤμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών
Δομημένος Προγραμματισμός Ενότητα 4(β): Εργαστηριακή Άσκηση Αναπλ. Καθηγητής: Κωνσταντίνος Στεργίου Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται
Διαβάστε περισσότερα3 η ΕΝΟΤΗΤΑ Συναρτήσεις στο MATLAB
ΣΧΟΛΗ ΠΟΛΙΤΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΕΜΠ ΜΕΘΟΔΟΙ ΕΠΙΛΥΣΗΣ ΜΕ Η/Υ 3 η ΕΝΟΤΗΤΑ Συναρτήσεις στο MATLAB Ν.Δ. Λαγαρός Μ. Φραγκιαδάκης Α. Στάμος Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες Χρήσης Creative
Διαβάστε περισσότεραΦροντιστήριο 4 Σκελετοί Λύσεων
Φροντιστήριο 4 Σκελετοί Λύσεων Άσκηση 1 Υποθέτουμε πως οι λίστες είναι υλοποιημένες χρησιμοποιώντας τις πιο κάτω δομές. typedef struct Node{ type data; struct node *next; node; node *top; list; Υλοποιούμε
Διαβάστε περισσότεραΔομές Δεδομένων. Ενότητα 11: Τεχνικές Κατακερματισμού. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής.
Ενότητα 11: Τεχνικές Κατακερματισμού Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται
Διαβάστε περισσότεραΠρογραμματισμός H/Y Ενότητα 4: Δείκτες. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)
Προγραμματισμός H/Y Ενότητα 4: Δείκτες Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
Διαβάστε περισσότεραΠρογραμματισμός Υπολογιστών & Υπολογιστική Φυσική
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική Ενότητα 7: Συναρτήσεις Νικόλαος Στεργιούλας Τμήμα Φυσικής Άδειες Χρήσης Το παρόν εκπαιδευτικό
Διαβάστε περισσότεραΠρογραμματισμός Η/Υ 1 (Εργαστήριο)
Προγραμματισμός Η/Υ 1 (Εργαστήριο) Ενότητα 10: Συναρτήσεις Καθηγήτρια Εφαρμογών: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης
Διαβάστε περισσότεραΔιαδικαστικός Προγραμματισμός
Διαδικαστικός Προγραμματισμός Ενότητα 7: Δείκτες Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες,
Διαβάστε περισσότεραΔιαδικασιακός Προγραμματισμός
Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 14 η Διαχείριση Μνήμης και Δομές Δεδομένων Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη
Διαβάστε περισσότεραΤμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών
Δομημένος Προγραμματισμός Ενότητα 5(γ): Εργαστηριακή Άσκηση Αναπλ. Καθηγητής: Κωνσταντίνος Στεργίου Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται
Διαβάστε περισσότεραΔομημένος Προγραμματισμός
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Δομημένος Προγραμματισμός Ενότητα: Αλφαριθμητικά θεωρία Δ. Ε. Μετάφας Τμ. Ηλεκτρονικών Μηχ. Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό
Διαβάστε περισσότεραΠρογραμματισμός Υπολογιστών & Υπολογιστική Φυσική
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική Ενότητα 4: Δομές Ελέγχου Νικόλαος Στεργιούλας Τμήμα Φυσικής Άδειες Χρήσης Το παρόν εκπαιδευτικό
Διαβάστε περισσότεραΜεταγλωττιστές. Ενότητα 6: Λεκτική ανάλυση (Μέρος 2 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ
Μεταγλωττιστές Ενότητα 6: Λεκτική ανάλυση (Μέρος 2 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό
Διαβάστε περισσότεραΕργαστήριο 4: Υλοποίηση Αφηρημένου Τύπου Δεδομένων: Ταξινομημένη Λίστα
Εργαστήριο 4: Υλοποίηση Αφηρημένου Τύπου Δεδομένων: Ταξινομημένη Λίστα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: -Λίστες -Υλοποίηση ταξινομημένης λίστας με δυναμική δέσμευση μνήμης ΕΠΛ035
Διαβάστε περισσότεραΗλεκτρονικοί Υπολογιστές
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 9: Πίνακες στη C++ Ζαχαρούλα Ανδρεοπούλου Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
Διαβάστε περισσότεραΟργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Ασκήσεις 7: Πρόγραμμα Συνδεδεμένης Λίστας και Διαδικασιών. Μανόλης Γ.Η.
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Οργάνωση Υπολογιστών Ασκήσεις 7: Πρόγραμμα Συνδεδεμένης Λίστας και Διαδικασιών Μανόλης Γ.Η. Κατεβαίνης Τμήμα Επιστήμης Υπολογιστών Άδειες Χρήσης Το παρόν εκπαιδευτικό
Διαβάστε περισσότεραΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Δείκτες Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Άδειες Χρήσης ΥΠΟΛΟΓΙΣΤΕΣ ΙI Δείκτες Διδάσκοντες: Αν Καθ Δ Παπαγεωργίου, Αν Καθ Ε Λοιδωρίκης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative
Διαβάστε περισσότεραΠρογραμματισμός Υπολογιστών & Υπολογιστική Φυσική
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική Ενότητα 8: Αρχεία και Δομές Νικόλαος Στεργιούλας Τμήμα Φυσικής Άδειες Χρήσης Το παρόν
Διαβάστε περισσότεραΕισαγωγή στον Προγραμματισμό
Εισαγωγή στον Προγραμματισμό Ενότητα 14 Δυναμική διαχείριση μνήμης Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Στατική δέσμευση μνήμης Με τη δήλωση απλών μεταβλητών
Διαβάστε περισσότεραΠρογραμματισμός H/Y Ενότητα 6: Δομές (structures) Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)
Προγραμματισμός H/Y Ενότητα 6: Δομές (structures) Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative
Διαβάστε περισσότεραΣτοίβες με Δυναμική Δέσμευση Μνήμης
ΕΠΛ 231 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ 10/02/10 Παύλος Αντωνίου Στοίβες με Δυναμική Δέσμευση Μνήμης Στοίβα: Στοίβα είναι μια λίστα που έχει ένα επιπλέον περιορισμό. Ο περιορισμός είναι ότι οι εισαγωγές
Διαβάστε περισσότεραΠρογραμματισμός Η/Υ 1 (Εργαστήριο)
Προγραμματισμός Η/Υ 1 (Εργαστήριο) Ενότητα 4: Τύποι Δεδομένων και τελεστές Καθηγήτρια Εφαρμογών: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται
Διαβάστε περισσότεραιαφάνειες παρουσίασης #5 (β)
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ http://www.softlab.ntua.gr/~nickie/courses/progtech/ ιδάσκοντες: Γιάννης Μαΐστρος (maistros@cs.ntua.gr) Στάθης Ζάχος (zachos@cs.ntua.gr) (nickie@softlab.ntua.gr) ιαφάνειες παρουσίασης
Διαβάστε περισσότεραΔιδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ
Διάλεξη 6: Διαχείριση Μνήμης & Δυναμικές Δομές Δεδομένων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Δυναμικές Δομές Δεδομένων Γενικά Δυναμική Δέσμευση/Αποδέσμευση Μνήμης Δομή τύπου structure
Διαβάστε περισσότεραΠληροφορική II. Ενότητα 5 : Δομές Δεδομένων και αφηρημένοι. τύποι δεδομένων. Δρ. Γκόγκος Χρήστος
1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Πληροφορική II Ενότητα 5 : Δομές Δεδομένων και αφηρημένοι τύποι δεδομένων Δρ. Γκόγκος Χρήστος 2 Ανοιχτά Ακαδημαϊκά Τμήμα Χρηματοοικονομικής
Διαβάστε περισσότερα1 η ΑΣΚΗΣΗ ΣΤΗΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ. Ακ. έτος , 5ο Εξάμηνο, Σχολή ΗΜ&ΜΥ
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr 1 η ΑΣΚΗΣΗ ΣΤΗΝ
Διαβάστε περισσότεραΑ Β Γ static; printf("%c\n", putchar( A +1)+2); B DB BD. int i = 0; while (++i); printf("*");
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εξετάσεις Α Περιόδου 2016 (1/2/2016) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................
Διαβάστε περισσότεραΠρογραμματισμός Υπολογιστών & Υπολογιστική Φυσική
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική Ενότητα 3: Εισαγωγή και Εμφάνιση Δεδομένων Νικόλαος Στεργιούλας Τμήμα Φυσικής Άδειες
Διαβάστε περισσότεραΔιδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ
Διάλεξη 9: Στοίβες:Υλοποίηση & Εφαρμογές Στην ενότητα αυτή θα μελετηθεί η χρήση στοιβών στις εξής εφαρμογές: Υλοποίηση Στοιβών με Δυναμική Δέσμευση Μνήμης Εφαρμογή Στοιβών 1: Αναδρομικές συναρτήσεις Εφαρμογή
Διαβάστε περισσότεραΔομημένος Προγραμματισμός
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Δομημένος Προγραμματισμός Ενότητα: Εισαγωγή στη C θεωρία Δ. Ε. Μετάφας Τμ. Ηλεκτρονικών Μηχ. Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό
Διαβάστε περισσότεραΠρογραμματισμός Η/Υ 1 (Εργαστήριο)
Προγραμματισμός Η/Υ 1 (Εργαστήριο) Ενότητα 5: Εντολές συνθήκης Καθηγήτρια Εφαρμογών: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης
Διαβάστε περισσότεραΔιαδικαστικός Προγραμματισμός
Διαδικαστικός Προγραμματισμός Ενότητα 6: Πίνακες-Συναρτήσεις Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως
Διαβάστε περισσότεραΔομές Δεδομένων. Ενότητα 9: Τα ΔΔΑ ως Αναδρομικές Δομές Δεδομένων-Εφαρμογή Δυαδικών Δέντρων: Κωδικοί Huffman. Καθηγήτρια Μαρία Σατρατζέμη
Ενότητα 9: Τα ΔΔΑ ως Αναδρομικές Δομές Δεδομένων-Εφαρμογή Δυαδικών Δέντρων: Κωδικοί Huffman Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
Διαβάστε περισσότεραΠρογραμματισμός Η/Υ (ΤΛ2007 )
Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2015-16
Διαβάστε περισσότεραΕιδικά Θέματα Προγραμματισμού
Ειδικά Θέματα Προγραμματισμού Ενότητα 3: Τύποι Δεδομένων - Τελεστές Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
Διαβάστε περισσότερα#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128]
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εξετάσεις Α Περιόδου 2017 (27/1/2017) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................
Διαβάστε περισσότεραΜΑΘΗΜΑ: Αντικειμενοστρεφής Προγραμματισμός
ΜΑΘΗΜΑ: Αντικειμενοστρεφής Προγραμματισμός ΔΙΔΑΣΚΩΝ: ΤΜΗΜΑ: Συνδουκάς Δημήτριος Διοίκησης Επιχειρήσεων (Γρεβενά) 1 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης CreativeCommons.
Διαβάστε περισσότεραΔομές Δεδομένων & Αλγόριθμοι
Λίστες Λίστες - Απλά Συνδεδεμένες Λίστες - Διπλά Συνδεδεμένες Λίστες Είδη Γραμμικών Λιστών Σειριακή Λίστα Καταλαμβάνει συνεχόμενες θέσεις κύριας μνήμης Συνδεδεμένη Λίστα Οι κόμβοι βρίσκονται σε απομακρυσμένες
Διαβάστε περισσότεραΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Άσκηση αυτοαξιολόγησης 3-4 Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών Ενότητες 3 & 4: ένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις Άσκηση 1 Γράψτε
Διαβάστε περισσότεραΠληροφορική ΙΙ Θεματική Ενότητα 5
Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Πληροφορική ΙΙ Θεματική Ενότητα 5 Λογικοί Τελεστές Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά
Διαβάστε περισσότεραΑνάπτυξη και Σχεδίαση Λογισμικού
Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Δυναμική Κατανομή Μνήμης Δυναμική εκχώρηση μνήμης Σωρός Συναρτήσεις malloc(), calloc(), realloc(), free() Δυναμικές δομές
Διαβάστε περισσότεραΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Συστήματα Αυτομάτου Ελέγχου. Ενότητα Α: Γραμμικά Συστήματα
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Συστήματα Αυτομάτου Ελέγχου Ενότητα Α: Γραμμικά Συστήματα Όνομα Καθηγητή: Ραγκούση Μαρία Τμήμα: Ηλεκτρονικών Μηχανικών Τ.Ε. Άδειες
Διαβάστε περισσότεραΔομημένος Προγραμματισμός
Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Δομημένος Προγραμματισμός Ενότητα 8: Δείκτες Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά Το έργο
Διαβάστε περισσότεραΔομημένος Προγραμματισμός (ΤΛ1006)
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής
Διαβάστε περισσότεραΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #5
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #5 «Προγραμματισμός Η/Υ» - Τετράδιο Εργαστηρίου #5 2 Γενικά Στο Τετράδιο #5 του Εργαστηρίου θα ασχοληθούμε με πιο προχωρημένα θέματα υλοποίησης
Διαβάστε περισσότεραΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι
ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι κ. ΠΕΤΑΛΙΔΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ 1 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται
Διαβάστε περισσότεραΠρογραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Προγραμματισμός Ι Δυναμική Διαχείριση Μνήμης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2011-2012 Ανάγκη για Δυναμική Μνήμη Στατική Μνήμη Μέχρι τώρα χρησιμοποιούσαμε
Διαβάστε περισσότεραΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές Δεδομένων Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού
Διαβάστε περισσότεραΔιάλεξη 07: Λίστες Ι Υλοποίηση & Εφαρμογές
Διάλεξη 07: Λίστες Ι Υλοποίηση & Εφαρμογές Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ευθύγραμμες Απλά Συνδεδεμένες Λίστες (εισαγωγή, εύρεση, διαγραφή) Ευθύγραμμες Διπλά Συνδεδεμένες Λίστες
Διαβάστε περισσότεραυναµικές οµές εδοµένων (συν.) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα:
υναµικές οµές εδοµένων (συν.) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Ταξινοµηµένες Λίστες µε δυναµική δέσµευση µνήµης Αναδροµκές συναρτήσεις ΕΠΛ 12 Αρχές Προγραµµατισµού ΙΙ 1 Λίστες
Διαβάστε περισσότεραΔιάλεξη 12: Λίστες Υλοποίηση & Εφαρμογές. Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 12: Λίστες Υλοποίηση & Εφαρμογές Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: -Ευθύγραμμες Απλά Συνδεδεμένες Λίστες (εύρεση, εισαγωγή, διαγραφή) - Σύγκριση Συνδεδεμένων Λιστών με Πίνακες
Διαβάστε περισσότεραΔιάλεξη 22: Δυαδικά Δέντρα. Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 22: Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Δυαδικά Δένδρα - Δυαδικά Δένδρα Αναζήτησης - Πράξεις Εισαγωγής, Εύρεσης Στοιχείου, Διαγραφής Μικρότερου Στοιχείου
Διαβάστε περισσότεραΥλοποίηση Λιστών. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα:
Υλοποίηση Λιστών Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ευθύγραμμές Απλά και Διπλά Συνδεδεμένες Λίστες Κυκλικές Απλά και Διπλά Συνδεδεμένες Λίστες Τεχνικές Μείωσης Μνήμης ΕΠΛ 231 Δομές
Διαβάστε περισσότεραΠρογραμματισμός Η/Υ 1 (Εργαστήριο)
Προγραμματισμός Η/Υ 1 (Εργαστήριο) Ενότητα 2: Δομή ενός προγράμματος C Καθηγήτρια Εφαρμογών: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες
Διαβάστε περισσότεραΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ
ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κεφάλαιο 15 Επιμέλεια: Βασίλης Παλιουράς, Αναπληρωτής Καθηγητής Ευάγγελος Δερματάς, Αναπληρωτής Καθηγητής Σταύρος Νούσιας, Βοηθός Ερευνητή Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών
Διαβάστε περισσότεραΔιάλεξη 21η: Απλά Συνδεδεμένες Λίστες
Διάλεξη 21η: Απλά Συνδεδεμένες Λίστες Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Πρατικάκης (CSD) Απλές Λίστες CS100, 2015-2016 1 / 10 Δομές δεδομένων Ορισμός:
Διαβάστε περισσότεραΑΣΚΗΣΗ 6: ΔΕΙΚΤΕΣ. Σκοπός της Άσκησης. 1. Εισαγωγικά στοιχεία για τους Δείκτες
Σκοπός της Άσκησης ΑΣΚΗΣΗ 6: ΔΕΙΚΤΕΣ Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η εξοικείωση με τη χρήση των δεικτών (pointers). Οι δείκτες δίνουν την δυνατότητα σε προγράμματα να προσομοιώνουν τη
Διαβάστε περισσότεραΔιάλεξη 17: Δυαδικά Δέντρα. Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ
Διάλεξη 7: Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Δυαδικά Δένδρα Δυαδικά Δένδρα Αναζήτησης Πράξεις Εισαγωγής, Εύρεσης Στοιχείου, Διαγραφής Μικρότερου Στοιχείου Διδάσκων:
Διαβάστε περισσότεραΠρογραμματισμός Δομές Δεδομένων
Προγραμματισμός Δομές Δεδομένων Προγραμματισμός Δομές Δεδομένων (Data Structures) Καινούργιοι τύποι δεδομένων που αποτελούνται από την ομαδοποίηση υπαρχόντων τύπων δεδομένων Ομαδοποίηση πληροφορίας που
Διαβάστε περισσότεραΔυναμική δέσμευση και αποδέσμευση μνήμης. Προγραμματισμός II 1
Δυναμική δέσμευση και αποδέσμευση μνήμης Προγραμματισμός II 1 lalis@inf.uth.gr Γιατί χρειάζεται η δυναμική μνήμη; Οι απαιτήσεις του προγράμματος σε μνήμη μπορεί να είναι άγνωστες την ώρα της συγγραφής
Διαβάστε περισσότεραΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Άσκηση αυτοαξιολόγησης 2 Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών Ενότητα 2: Στοίβες Ουρές - Λίστες Ασκήσεις και Λύσεις Άσκηση 1 Έστω ότι µια
Διαβάστε περισσότεραΣτοιχειώδεις Δομές Δεδομένων
Στοιχειώδεις Δομές Δεδομένων Τύποι δεδομένων στη Java Ακέραιοι (int, long) Αριθμοί κινητής υποδιαστολής (float, double) Χαρακτήρες (char) Δυαδικοί (boolean) Από τους παραπάνω μπορούμε να φτιάξουμε σύνθετους
Διαβάστε περισσότεραΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ)
ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ) Ενότητα 9: ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ ΔΙΔΑΣΚΩΝ: ΚΩΝΣΤΑΝΤΙΝΟΣ ΧΕΙΛΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ 1 Άδειες Χρήσης Το παρόν εκπαιδευτικό
Διαβάστε περισσότεραΔιάλεξη 13η: Δυναμική Διαχείρηση Μνήμης, μέρος 1
Διάλεξη 13η: Δυναμική Διαχείρηση Μνήμης, μέρος 1 Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Μνήμη I CS100,
Διαβάστε περισσότεραlab13grades Άσκηση 2 -Σωστά απελευθερώνετε ολόκληρη τη λίστα και την κεφαλή
ΑΕΜ ΒΑΘΜΟΣ ΣΧΟΛΙΑ 00497 -Δεν ελέγχετε αν η createlist εκτελλέστικε σωστά και δεν τερµατίζετε το πρόγραµµα σε διαφορετική -Σωστά βρίσκετε το σηµείο στο οποίο πρέπει να προστεθεί ο κόµβος. -Σωστά τερµατίζετε
Διαβάστε περισσότεραΤμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών
Δομημένος Προγραμματισμός Ενότητα 3(γ): Εργαστηριακή Άσκηση Αναπλ. Καθηγητής: Κωνσταντίνος Στεργίου Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται
Διαβάστε περισσότεραΔιαδικαστικός Προγραμματισμός
ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Διαδικαστικός Προγραμματισμός Α Εξάμηνο Μάθημα 7 ο : Δείκτες Στόχοι μαθήματος Να κατανοήσετε τη δυνατότητα χρήσης διευθύνσεων ως τιμών δεδομένων. Να μπορείτε να χρησιμοποιείτε
Διαβάστε περισσότεραΠρογραμματισμός Η/Υ 1 (Εργαστήριο)
Προγραμματισμός Η/Υ 1 (Εργαστήριο) Ενότητα 8: Πίνακες Καθηγήτρια Εφαρμογών: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative
Διαβάστε περισσότεραΠρογραμματισμός Η/Υ 1 (Εργαστήριο)
Προγραμματισμός Η/Υ 1 (Εργαστήριο) Ενότητα 3: Συναρτήσεις printf() και scanf() Καθηγήτρια Εφαρμογών: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται
Διαβάστε περισσότεραΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python
ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Εισαγωγή στη Python Νικόλαος Ζ. Ζάχαρης Αναπληρωτής
Διαβάστε περισσότεραΣτατιστική Επιχειρήσεων Ι
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Τεχνολογικό Εκπαιδευτικό Ίδρυμα Πειραιά Στατιστική Επιχειρήσεων Ι Ενότητα 2: Τυχαίες Μεταβλητές Μιλτιάδης Χαλικιάς, Επίκουρος Καθηγητής Τμήμα Διοίκησης Επιχειρήσεων Άδειες Χρήσης Το
Διαβάστε περισσότεραΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ
ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κεφάλαιο 2 Επιμέλεια: Βασίλης Παλιουράς, Αναπληρωτής Καθηγητής Ευάγγελος Δερματάς, Αναπληρωτής Καθηγητής Σταύρος Νούσιας, Βοηθός Ερευνητή Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών
Διαβάστε περισσότεραΠρογραμματισμός H/Y Ενότητα 5: Συναρτήσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)
Προγραμματισμός H/Y Ενότητα 5: Συναρτήσεις Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
Διαβάστε περισσότεραΔιδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ
Διάλεξη 8: Αφηρημένοι Τύποι Δεδομένων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Αφηρημένοι Τύποι Δεδομένων (ΑΤΔ) Οι ΑΤΔ Στοίβα και Ουρά Υλοποίηση των ΑΤΔ Στοίβα και Ουρά με Στατική Δέσμευση
Διαβάστε περισσότεραΕπιλογές και Κριτήρια Σχεδιασμού ΑΤΔ Ανεξαρτήτως από Γλώσσα Υλοποίησης 24/4/2012
Επιλογές και Κριτήρια Σχεδιασμού ΑΤΔ Ανεξαρτήτως από Γλώσσα Υλοποίησης 24/4/2012 Κύκλος (Ζωής) Λογισμικού (ΑΤΔ) Γενικά Ορισμός ΑΤΔ (Προδιαγραφές) Οργάνωση Δεδομένων Τι κάνει Υλοποίηση Σχεδιασμός (ανεξάρτητος
Διαβάστε περισσότεραΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Συναρτήσεις II Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Άδειες Χρήσης ΥΠΟΛΟΓΙΣΤΕΣ ΙI Συναρτήσεις II Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες
Διαβάστε περισσότεραΙδιοκτησία Αντικειµένου
Software Transactional Memory H STM υποστηρίζει την εκτέλεση δοσοληψιών από τις διεργασίες, οι οποίες περιέχουν λειτουργίες που ο χρήστης θέλει να εκτελέσει στα διαµοιραζόµενα αντικείµενα. H STM εγγυάται
Διαβάστε περισσότεραΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 8α: Ταξινόμηση-Σύγκριση αλγορίθμων ταξινόμησης Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης
Διαβάστε περισσότεραΠροχωρημένες έννοιες προγραμματισμού σε C
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Διδάσκοντες: Στάθης Ζάχος (zachos@cs.ntua.gr) Νίκος Παπασπύρου (nickie@softlab.ntua.gr)
Διαβάστε περισσότεραΚατ οίκον Εργασία 2 Σκελετοί Λύσεων
Κατ οίκον Εργασία 2 Σκελετοί Λύσεων Άσκηση 1 Ο ζητούμενος ΑΤΔ μπορεί να υλοποιηθεί ως μια ακολουθία από στοιχεία τύπου window συνοδευόμενη από τις πράξεις: MakeNewWindow(L,w) Destroy(L,w) SwitchTo(L,w)
Διαβάστε περισσότεραΔείκτες και Δομές. Info. Link. typedef struct NodeTag { InfoField Info; struct NodeTag *Link; } NodeType;
Δείκτες και Δομές Ένας βασικός «δομικός λίθος». Όλη μαζί η δομή (struct) ονομάζεται κόμβος ή Node και αποτελείται από - Το μέλος Info οποιουδήποτε τύπου: int, άλλο struct (InfoField) - To μέλος ink τύπου
Διαβάστε περισσότεραΠοσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων Ι Σύνολο- Περιεχόμενο Μαθήματος
Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων Ι Σύνολο- Περιεχόμενο Μαθήματος Χιωτίδης Γεώργιος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης
Διαβάστε περισσότεραΑρχές Γλωσσών Προγραμματισμού και Μεταφραστών
Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Ενότητα 7: Υπορουτίνες Καθ. Γιάννης Γαροφαλάκης Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ και Πληροφορικής Ορισμός Αφαίρεση με χρήση υπορουτινών (subroutine abstraction)
Διαβάστε περισσότεραΔομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων
Δομημένος Προγραμματισμός Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 2 Ορισμός
Διαβάστε περισσότεραΣυλλογές, Στοίβες και Ουρές
Συλλογές, Στοίβες και Ουρές Σε πολλές εφαρμογές μας αρκεί η αναπαράσταση ενός δυναμικού συνόλου με μια δομή δεδομένων η οποία δεν υποστηρίζει την αναζήτηση οποιουδήποτε στοιχείου. Συλλογή (bag) : Επιστρέφει
Διαβάστε περισσότεραΔιδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ
Διάλεξη 10: Λίστες Υλοποίηση & Εφαρμογές Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ευθύγραμμες Απλά Συνδεδεμένες Λίστες (εύρεση, εισαγωγή, διαγραφή) Σύγκριση Συνδεδεμένων Λιστών με Πίνακες
Διαβάστε περισσότερα