Δομές Δεδομένων και Αρχεία

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Συλλογές, Στοίβες και Ουρές Σε πολλές εφαρμογές μας αρκεί η αναπαράσταση ενός δυναμικού συνόλου με μια δομή δεδομένων η οποία δεν υποστηρίζει την αναζήτηση.
Advertisements

ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ
Ποιότητα Λογισμικού Ενότητα 3: Σουίτες Ελέγχων. Διδάσκων: Γεώργιος Κακαρόντζας, Καθηγητής Εφαρμογών. Τμήμα Μηχανικών Πληροφορικής, Τεχνολογικής Εκπαίδευσης.
Ποιότητα Λογισμικού Ενότητα 2: Παραμετρικοί έλεγχοι στο JUnit. Διδάσκων: Γεώργιος Κακαρόντζας, Καθηγητής Εφαρμογών. Τμήμα Μηχανικών Πληροφορικής, Τεχνολογικής.
Μεταγλωττιστές (Compilers) (Θ) Ενότητα 8: Πίνακας Συμβόλων Κατερίνα Γεωργούλη Τμήμα Μηχανικών Πληροφορικής ΤΕ Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας.
Μεταγλωττιστές (Compilers) (Θ) Ενότητα 10: Παραγωγή Ενδιάμεσου Κώδικα (Σημασιολογικές ρουτίνες μετάφρασης-Μέρος Α) Κατερίνα Γεωργούλη Τμήμα Μηχανικών Πληροφορικής.
Μεταγλωττιστές (Compilers) (Θ) Ενότητα 11: Βελτιστοποίηση Ενδιάμεσου Κώδικα Κατερίνα Γεωργούλη Τμήμα Μηχανικών Πληροφορικής ΤΕ Ανοικτά Ακαδημαϊκά Μαθήματα.
Διδακτική Πληροφορικής
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 4: Συμβολοσειρές και Δομές Ελέγχου. Διδάσκων: Νικόλαος Θ Λιόλιος,
Δομές Δεδομένων και Αρχεία Ενότητα 7: Η δομή Στοίβα Ηλίας Κ. Σάββας, Αναπληρωτής Καθηγητής, Τμήμα Μηχανικών Πληροφορικής Τ.Ε., T.E.I. Θεσσαλίας.
Δομές Δεδομένων και Αρχεία Ενότητα 10: Κυκλικά και Διπλά Συνδεδεμένη Λίστα Ηλίας Κ. Σάββας, Αναπληρωτής Καθηγητής, Τμήμα Μηχανικών Πληροφορικής Τ.Ε., T.E.I.
Διδακτική Πληροφορικής Ενότητα 2: Η εξέλιξη των εργαλείων της Εκπαίδευσης. Διδάσκων: Γεώργιος Σούλτης, Επίκουρος Καθηγητής. Τμήμα Μηχανικών Πληροφορικής,
Δομές Δεδομένων και Αρχεία Ενότητα 4: Ευρετηριασμένα Αρχεία Ηλίας Κ. Σάββας, Αναπληρωτής Καθηγητής, Τμήμα Μηχανικών Πληροφορικής Τ.Ε., T.E.I. Θεσσαλίας.
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 6: Πίνακες και Παράμετροι στην main. Διδάσκων: Νικόλαος Θ Λιόλιος,
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 2: Μεταβλητές και Τύποι Δεδομένων. Διδάσκων: Νικόλαος Θ Λιόλιος,
Προγραμματισμός ΗΥ Ενότητα 6: Δισδιάστατοι πίνακες.
Δομές Δεδομένων και Αρχεία
Δομές Δεδομένων και Αρχεία Ενότητα 8: Η δομή Ουρά Ηλίας Κ. Σάββας, Αναπληρωτής Καθηγητής, Τμήμα Μηχανικών Πληροφορικής Τ.Ε., T.E.I. Θεσσαλίας.
Δομές Δεδομένων και Αρχεία Ενότητα 3: Αρχεία Δομών ΙΙ Ηλίας Κ. Σάββας, Αναπληρωτής Καθηγητής, Τμήμα Μηχανικών Πληροφορικής Τ.Ε., T.E.I. Θεσσαλίας.
Αντικειμενοστραφής Προγραμματισμός Ι
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 10: Αφηρημένες τάξεις. Διδάσκων: Νικόλαος Θ Λιόλιος, Καθηγητής.
Ανθρωπολογία του Θεάτρου Ενότητα 4 η : Βασικές αρχές της Τέχνης του Ηθοποιού Γιώργος Σαμπατακάκης, M.Phil. (Καίμπρητζ) – Ph.D. (Λονδίνο) Τμήμα Θεατρικών.
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Εκπαιδευτικά Προγράμματα με Χρήση Η/Υ ΙΙ Θέμα «παιγνίδια» (website address) Διδάσκουσα: Καθηγήτρια Τζένη.
Αρχές Διοίκησης και Διαχείρισης Έργων Ενότητα 12: Οικονομική Διαχείριση Έργων – Ταμειακές Ροές. Διδάσκων: Φιτσιλής Παναγιώτης, Καθηγητής. Τμήμα Διοίκησης.
Τμήμα Τεχνολόγων Γεωπόνων Τίτλος Μαθήματος: ΚΑΛΛΩΠΙΣΤΙΚΑ ΔΕΝΤΡΑ ΚΑΙ ΘΑΜΝΟΙ Ενότητα 12: Οδηγίες δημιουργίας φυτολογίου Γρηγόριος Βάρρας Αν. Καθηγητής Άρτα,
ΗΛΕΚΤΡΟΝΙΚΟ ΕΜΠΟΡΙΟ Ενότητα 12 : Η χρήση της MySQL στο Ηλεκτρονικό εμπόριο (ΙΙI) Ιωάννης Τσούλος Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου.
Προγραμματισμός κινητών συσκευών
Ενότητα 7 : Χρήση Πινάκων στο Ηλεκτρονικό εμπόριο (I) Ιωάννης Τσούλος
Τεχνολογία και Προγραμματισμός Υπολογιστών
Αντικειμενοστραφής Προγραμματισμός Ι
Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου
Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου
Ενότητα 5 : Δομές Δεδομένων και αφηρημένοι
Ενότητα # 1: ΟΔΗΓΙΕΣ ΓΙΑ ΤΗΝ ΕΝΕΡΓΟΠΟΙΗΣΗ ΚΩΔΙΚΟΥ
Χρονικός Προγραμματισμός Έργων (Εργαστήριο)
Προγραμματισμός ΗΥ Ενότητα 11: Header Files. Διδάσκων: Ηλίας Κ Σάββας,
Χρονικός Προγραμματισμός Έργων (Εργαστήριο)
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Ενότητα 9: Δείκτες και Δυναμική Διαχείριση Μνήμης.
Τμήμα Μηχανολόγων Μηχανικών Τ.Ε.
Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου
ΦΡΟΝΤΙΣΤΗΡΙΟ: ΘΕΡΜΙΚΕΣ ΤΑΣΕΙΣ
Διαχείριση Κινδύνου Ενότητα 7: Παρακολούθηση Κινδύνων.
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Στατιστική Επιχειρήσεων
ΠΑΡΟΥΣΙΑΣΕΙΣ ΜΑΘΗΜΑΤΟΣ ΠΙΘΑΝΟΤΗΤΕΣ(3)
Συστήματα Αυτομάτου Ελέγχου II
ΜΗΧΑΝΙΚΗ ΤΩΝ ΥΛΙΚΩΝ ΦΡΟΝΤΙΣΤΗΡΙΟ: ΔΙΚΤΥΩΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Προγραμματισμός κινητών συσκευών
Προγραμματισμός κινητών συσκευών
Αντικειμενοστραφής Προγραμματισμός ΙΙ
Αντικειμενοστραφής Προγραμματισμός ΙΙ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Επιχειρησιακές Επικοινωνίες
ΠΑΡΟΥΣΙΑΣΕΙΣ ΜΑΘΗΜΑΤΟΣ ΠΙΘΑΝΟΤΗΤΕΣ(7)
ΠΑΡΟΥΣΙΑΣΕΙΣ ΜΑΘΗΜΑΤΟΣ ΠΙΘΑΝΟΤΗΤΕΣ(4)
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΕνΟτητα # 8: Ms Word V CLAUDIA BOETTCHER ΤμΗμα ΙστορΙαΣ
ΠΑΡΟΥΣΙΑΣΕΙΣ ΜΑΘΗΜΑΤΟΣ ΠΙΘΑΝΟΤΗΤΕΣ(5)
ΠΑΡΟΥΣΙΑΣΕΙΣ ΜΑΘΗΜΑΤΟΣ ΠΙΘΑΝΟΤΗΤΕΣ(10)
ΑΝΑΓΝΩΡΙΣΗ ΠΡΟΤΥΠΩΝ ΝΕΥΡΩΝΙΚΑ ΔΙΚΤΥΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Προγραμματισμός κινητών συσκευών
Προγραμματισμός ΗΥ Ενότητα 12: Αρχεία Δομών. Διδάσκων: Ηλίας Κ Σάββας,
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Μεταγράφημα παρουσίασης:

Δομές Δεδομένων και Αρχεία Ενότητα 9: Η δομή Λίστα Ηλίας Κ. Σάββας, Αναπληρωτής Καθηγητής, Τμήμα Μηχανικών Πληροφορικής Τ.Ε., T.E.I. Θεσσαλίας

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς.

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.

Σκοποί ενότητας Ο Αναγνώστης να μπορεί να: Σκοποί ενότητας Ο Αναγνώστης να μπορεί να: Διαχειρίζεται πλήρως την δομή της λίστας, δηλαδή δημιουργία, εισαγωγή, διαπέραση, αναζήτηση και διαγραφή στοιχείων. Η δομή Λίστα

Περιεχόμενα ενότητας Απλά Συνδεδεμένη Λίστα (Linked List): Ανάλυση, Υλοποίηση, Εφαρμογές. Η δομή Λίστα

Απλά Συνδεδεμένη Λίστα (Linked List) (1 από 2) Γραμμική δομή δεδομένων αποτελούμενη από κόμβους όπου ο κάθε κόμβος περιέχει δεδομένα και έναν δείκτη ο οποίος ‘δείχνει’ τον επόμενο κόμβο. Ο τελευταίος κόμβος δεν ‘δείχνει’ πουθενά (NULL). Η δομή Λίστα 6

Απλά Συνδεδεμένη Λίστα (Linked List) (2 από 2) Ο πρώτος κόμβος ονομάζεται κεφαλή (head) της λίστας, και Ο τελευταίος κόμβος ονομάζεται ουρά (tail) της λίστας. Κεφαλή Ουρά Η δομή Λίστα 7

Αναπαράσταση Α.Σ. Λίστας Δείκτες, Πίνακας, Αρχείο. Η δομή Λίστα 8

Λίστα – Πίνακας (1 από 2) Δεδομένα Δείκτης -1 1 2 3 4 5 6 7 8 9 -1 1 2 3 4 5 6 7 8 9 Η δομή Λίστα 9

Λίστα – Πίνακας (2 από 2) Δεδομένα Δείκτης ΔΔΔ (Ουρά) -1 1 2 ΒΒΒ 8 3 4 ΔΔΔ (Ουρά) -1 1 2 ΒΒΒ 8 3 4 5 ΑΑΑ (Κεφαλή) 6 7 ΓΓΓ 9 Η δομή Λίστα 10

Λειτουργίες Α.Σ. Λίστας Εισαγωγή Κόμβου: Αρχή Λίστας, Τέλος Λίστας, Ενδιάμεσα Λίστας, Διαγραφή Κόμβου, Διαπέραση Λίστας – Προβολή Λίστας, Αναζήτηση / Διόρθωση στοιχείων Κόμβου, Διαγραφή Λίστας. Η δομή Λίστα 11

Τυπική Δομή Λίστας /* Λίστα προϊόντων. Ο κάθε κόμβος περιέχει την απαραίτητη πληροφορία για ένα προϊόν. */ typedef struct Proion { int code; char perigrafi[20]; float timi; struct Proion *epomeno; /* Δείκτης */ }; Η δομή Λίστα 12

Διαχείριση Λίστας Με χρήση μίας μεταβλητής (δείκτης) η οποία δείχνει το πρώτο κόμβο – ΚΕΦΑΛΗ, Εναλλακτικά και χρήση δεύτερης μεταβλητής (δείκτη) που να δείχνει τον τελευταίο κόμβο – ΟΥΡΑ, Αρχικοποίηση (κενή λίστα): kefali = NULL; oura = NULL; Η δομή Λίστα 13

Λίστα: Εισαγωγή Νέου Κόμβου Εισαγωγή νέου κόμβου < Δ > μετά τον κόμβο <Β> Α Β Γ NULL Κεφαλή Ουρά Η δομή Λίστα 14

(1) Δημιουργία Νέου Κόμβου malloc( ---- ); Δ NULL Α Β Γ NULL Η δομή Λίστα 15

(2) Τοποθέτηση Δείκτη Ο δείκτης του νέου κόμβου δείχνει ότι και ο δείκτης του κόμβου μετά τον οποίο πρέπει να γίνει η εισαγωγή. Δ Α Β Γ NULL Η δομή Λίστα

(3) Επανατοποθέτηση Δείκτη Ο δείκτης του προηγούμενου κόμβου δείχνει τον νέο «προς εισαγωγή» κόμβο. Δ Α Β Γ NULL Η δομή Λίστα

(4) Τελική Μορφή Α Β Δ Γ NULL Κεφαλή Ουρά Η δομή Λίστα 18

Εισαγωγή Νέου Κόμβου - Αλγόριθμος Εάν η λίστα είναι κενή τότε ο νέος κόμβος εισάγεται στην λίστα (είναι κεφαλή και ουρά της λίστας), αλλιώς: Εάν πρέπει να μπει στην αρχή της λίστας τότε αποτελεί την κορυφή, και ο κόμβος που ήταν η κεφαλή αποτελεί πλέον τον δεύτερο κόμβο. Εάν πρέπει να μπει στο τέλος τότε ο νέος κόμβος γίνεται ουρά της λίστας και η τέως ουρά πρέπει να δείχνει τον νέο κόμβο. Εάν πρέπει να μπει μετά από κόμβο Χ τότε ό κόμβος που θα εισαχθεί πρέπει να δείχνει ότι έδειχνε ο κόμβος Χ και ο κόμβος Χ να δείχνει στον νέο κόμβο. Η δομή Λίστα

Εισαγωγή (αρχή) - Υλοποίηση void eisagogi_arxi(Proion *p) { Proion *neo; neo = (Proion *) malloc(sizeof(Proion)); *neo = *p; if ( kefali == NULL) { kefali = neo; oura = neo; } else { neo->epomeno = kefali; Η δομή Λίστα

Εισαγωγή (τέλος) - Υλοποίηση void eisagogi_telos(Proion *p) { Proion *neo; neo = (Proion *) malloc(sizeof(Proion)); *neo = *p; neo->epomeno = NULL; if (kefali == NULL) { kefali = neo; oura = neo; } else { oura->epomeno = neo; Η δομή Λίστα

Εισαγωγή (μετά) - Υλοποίηση void eisagogi_meta(Proion *p, int k) { Proion *neo, *x; x = kefali; while (x != NULL) { if (x->code == k) { neo = (Proion *) malloc(sizeof(Proion)); *neo = *p; neo->epomeno = x->epomeno; x->epomeno = neo; if ( x == oura) oura = neo; return; } x = x->epomeno; printf("\n\nΔεν Υπάρχει προϊόν με κωδικό %d\n\n", k); Η δομή Λίστα

Λίστα: Διαγραφή Κόμβου Διαγραφή κόμβου < Δ > Α Β Δ Γ NULL Η δομή Λίστα

(1) Τοποθέτηση Δείκτη Τοποθέτηση του δείκτη του προηγούμενου κόμβου στον κόμβο που δείχνει και ο υπό διαγραφή κόμβος. Α Β Δ Γ NULL Η δομή Λίστα

(2) Διαγραφή Κόμβου free( κόμβος < Δ > ); Α Β Δ Γ NULL Η δομή Λίστα

(3) Τελική Μορφή Α Β Γ NULL Η δομή Λίστα

Διαγραφή Κόμβου – Αλγόριθμος (1 από 2) Εάν ο υπό διαγραφή κόμβος είναι η κεφαλή τότε εάν υπάρχει επόμενος κόμβος αποτελεί πλέον την κορυφή αλλιώς (εάν δεν υπάρχει επόμενος) η λίστα είναι κενή. Εάν ο υπό διαγραφή κόμβο είναι η ουρά τότε ο προηγούμενος της ουράς κόμβος πρέπει να δείχνει στο κενό (NULL). Η δομή Λίστα

Διαγραφή Κόμβου – Αλγόριθμος (2 από 2) Εάν ο υπό διαγραφή κόμβος είναι ενδιάμεσος κόμβος: Τότε ο δείκτης του προηγούμενου κόμβου πρέπει να δείχνει τον επόμενο του υπό διαγραφή κόμβου. Σε κάθε περίπτωση αποδεσμεύεται ο χώρος του υπό διαγραφή κόμβου (free). Η δομή Λίστα

Διαγραφή Κόμβου – Υλοποίηση (1 από 2) void diagrafi(int k) { Proion *x, *proigoumenos; x = kefali; proigoumenos = kefali; while ( x != NULL ) { if ( x->code == k ) { if ( x == kefali ) kefali = x->epomeno; Η δομή Λίστα

Διαγραφή Κόμβου – Υλοποίηση (2 από 2) Διαγραφή Κόμβου – Υλοποίηση (2 από 2) else { proigoumenos->epomeno = x->epomeno; if ( x == oura ) oura = proigoumenos; } free(x); printf("\n\n To προϊόν με κωδικό %d διαγράφηκε! "); return; proigoumenos = x; x = x->epomeno; printf("\n\nΔεν Υπάρχει προϊόν με κωδικό %d\n\n", k); Η δομή Λίστα

Διαπέραση Λίστας - Αλγόριθμος Ορίζεται νέος κόμβος Χ και αρχικοποίηση με την κεφαλή. Εφόσον ο Χ δεν δείχνει στο κενό (NULL): Εμφάνιση / χρήση της πληροφορίας του κόμβου Χ, Τοποθέτηση στο κόμβο Χ τον επόμενό του. Τέλος Εφόσον Η δομή Λίστα

Εμφάνιση Λίστας - Υλοποίηση void emfanisi(void) { Proion *x; int c = 0; x = kefali; printf("\n Κωδικός Περιγραφή Τιμή "); while (x != NULL) { printf("\n%5d%10d%20s%12.2f", ++c, x->code, x->perigrafi, x->timi); x = x->epomeno; } Η δομή Λίστα

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

Αναζήτηση Κόμβου - Υλοποίηση void anazitisi(int k) { Proion *x; x = kefali; while ( x != NULL ) { if ( x->code == k ) { printf("\n\n====> %10d%20s%12.2f", x->code, x->perigrafi, x->timi); return; } x = x->epomeno; printf("\n\nΔεν Υπάρχει προιόν με κωδικό %d\n\n", k); Η δομή Λίστα

Διαγραφή Λίστας - Αλγόριθμος Διαπέραση όλης της λίστας και αποδέσμευση μνήμης (διαγραφή - free) για τον κάθε κόμβο, ΠΡΟΣΟΧΗ: πριν την αποδέσμευση χώρου πρέπει να κρατηθεί η πληροφορία αναφορικά με τον ποιος είναι ο επόμενος κόμβος!!! Η δομή Λίστα

Διαγραφή Λίστας - Υλοποίηση void diagrafi_listas(void) { Proion *x, *epomenos; x = kefali; while ( x != NULL ) { epomenos = x->epomeno; free(x); x = epomenos; } kefali = NULL; Η δομή Λίστα

Αρχή Προγράμματος Δηλώσεις – Αρχικοποιήσεις: …… Proion *kefali, *oura; void eisagogi_arxi(Proion *); ………. int main() { int epil, kodikos; float neatimi; Proion pr; kefali = NULL; Η δομή Λίστα

Στοίβα - Ουρά Τόσο η δομή της στοίβας όσο και της ουράς αποτελούν ειδικές περιπτώσεις της λίστας (γιατί;), Επομένως μπορούν να υλοποιηθούν και με δείκτες με ανάλογο τρόπο (και με λιγότερες διαδικασίες)! Η υλοποίησή τους με δείκτες  άσκηση επόμενου εργαστηρίου. Η δομή Λίστα

Τέλος Ενότητας