ΗΥ 150 – ΠρογραμματισμόςΞενοφών Ζαμ π ούλης ΗΥ -150 Προγραμματισμός Δομές Δεδομένων.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Δομές στην C (επανάληψη)
Advertisements

Το αλφαριθμητικό (string)
Συλλογές, Στοίβες και Ουρές Σε πολλές εφαρμογές μας αρκεί η αναπαράσταση ενός δυναμικού συνόλου με μια δομή δεδομένων η οποία δεν υποστηρίζει την αναζήτηση.
ΠΙΝΑΚΕΣ ΜΑΘΗΜΑ 6.
Στοιχειώδεις Δομές Δεδομένων TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Τύποι δεδομένων στη Java • Ακέραιοι.
POINTERS, AGGREGATION, COMPOSITION. POINTERS TO OBJECTS.
Ανασκόπηση σε Δείκτες, Ουρές, Στοίβες, Συνδεδεμένες Λίστες
ΜΑΘΗΜΑ 7ο Κυκλικές και Διπλά Συνδεδεμένες Λίστες,
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι
Γλώσσα C & Unix Τμήμα Πληροφορικής, ΑΠΘ B’ εξάμηνο
Lab 3: Sorted List ΕΠΛ231-Δομές Δεδομένων και Αλγόριθμοι18/10/2010.
Πίνακες-Αλφαριθμητικά
ΜΑΘ3122/106 Γλώσσα Προγραμματισμού
Αντικειμενοστραφής Προγραμματισμός
Μάθημα : Βασικά Στοιχεία της Γλώσσας Java
ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΙΑΔΙΚΑΣΤΙΚΟ ΠΡΟΓΡΑΜMΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ – ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ.
ΘΠ06 - Μεταγλωττιστές Πίνακας Συμβόλων, Σημασιολογικές Ενέργειες.
ΘΠ06 - Μεταγλωττιστές Πίνακας Συμβόλων. Πίνακας Συμβόλων (Symbol Table) (Ι)  Είναι μια δομή στην οποία αποθηκεύονται τα ονόματα ενός προγράμματος και.
Lab 10: Hash Tables with Chaining 20/11/2009Panayiotis Charalambous.
ΣΥΝΑΡΤΗΣΕΙΣ.
ΗΥ 150 – ΠρογραμματισμόςΞενοφών Ζαμ π ούλης ΗΥ-150 Προγραμματισμός Δυναμική Διαχείριση Μνήμης (1/2)
ΘΠ06 - Μεταγλωττιστές Πίνακας Συμβόλων Φροντιστήριο - 30/04/2009.
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ
Lists– Λίστες 1. Αυτό-αναφορικές δομές Τα μέλη μίας δομής μπορεί να είναι οποιουδήποτε τύπου, ακόμα και δείκτες σε δομές του ίδιου τύπου. Χρησιμοποιώντας.
Δυναμικη Δεσμευση Μνημης Συνδεδεμενες Λιστες (dynamic memory allocation, linked lists) Πως υλοποιουμαι προγραμματα που δεν γνωριζουμε πριν την εκτελεση.
Δείκτες (Pointers) – Δομές (Structs)
ΕΠΛ 223 Θεωρία και Πρακτική Μεταγλωττιστών7-1 Πίνακας Συμβόλων Πίνακας συμβόλων: δομή δεδομένων που χρησιμοποιείται για την αποθήκευση διαφόρων πληροφοριών.
1 ΗΥ-340 Γλώσσες και Μεταφραστές Φροντιστήριο Πίνακας Συμβόλων Symbol Table.
6-1 ΜΑΘΗΜΑ 6 ο Ανασκόπηση σε Δείκτες, Συνδεδεμένες Λίστες, Ουρές, Στοίβες.
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
ΗΥ150 – Προγραμματισμός Ξ. Ζαμπούλης ΗΥ-150 Προγραμματισμός Δομές Δεδομένων.
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Αναδρομή (1/2)
Lab 3: Sorted List ΕΠΛ231-Δομές Δεδομένων και Αλγόριθμοι115/4/2015.
Λίστες παράλειψης (skip lists) TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A
Έλεγχος Ονομάτων (Name Control) Για ένα πρόγραμμα που αποτελείται από πολλά τμήματα κάποια από τα οποία έχουν πιθανώς γραφτεί από άλλους προγραμματιστές.
ΗΥ 150 – Προγραμματισμός Ξενοφών Ζαμπούλης 1 Δείκτες σε συναρτήσεις Δείκτης σε συνάρτηση – Περιέχει τη διεύθυνση του κώδικα της συνάρτησης – Ό π ως ένας.
Υπερφόρτωση Τελεστών (Συνέχεια) Αντικειμενοστραφής Προγραμματισμός.
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
9-1 ΜΑΘΗΜΑ 9 ο Δυαδικά Δένδρα, Διάσχιση Δυαδικών Δένδρων Υλικό από τις σημειώσεις Ν. Παπασπύρου, 2006.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές.
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Τάξεις και Αφαίρεση Δεδομένων.
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Διδάσκοντες:Γιάννης Μαΐστρος Στάθης Ζάχος Νίκος Παπασπύρου
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Διδάσκοντες:Γιάννης Μαΐστρος Στάθης Ζάχος Νίκος Παπασπύρου
ΗΥ 150 – Προγραμματισμός Ξενοφών Ζαμπούλης ΗΥ -150 Προγραμματισμός Αρχεία.
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Διδάσκοντες:Γιάννης Μαΐστρος Στάθης Ζάχος Νίκος Παπασπύρου
ΗΥ150 – ΠρογραμματισμόςΞ. Ζαμπούλης ΗΥ-150 Προγραμματισμός Αρχεία.
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Δυναμική Διαχείριση Μνήμης (1/2)
ΗΥ 150 – Προγραμματισμός Ξενοφών Ζαμπούλης ΗΥ -150 Προγραμματισμός Τύ π οι Μεταβλητών Τελεστές Βασική Είσοδος / Έξοδος.
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Αλφαριθμητικά (Strings)
Δομές Δεδομένων και Αρχεία Ενότητα 10: Κυκλικά και Διπλά Συνδεδεμένη Λίστα Ηλίας Κ. Σάββας, Αναπληρωτής Καθηγητής, Τμήμα Μηχανικών Πληροφορικής Τ.Ε., T.E.I.
Δομές Δεδομένων και Αρχεία
ΗΥ 150 – Προγραμματισμός Ξενοφών Ζαμπούλης ΗΥ -150 Προγραμματισμός Δείκτες (Pointers) (1/2)
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Επιπλέον στοιχεία της C.
ΗΥ150 – ΠρογραμματισμόςΞενοφών Ζαμπούλης ΗΥ-150 Προγραμματισμός Αναδρομή (1/2)
Βασικά στοιχεία της Java
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Συναρτήσεις (μέρος δεύτερο) και Μεταβλητές.
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Τύποι Μεταβλητών Τελεστές Βασική Είσοδος/Έξοδος.
TEXNΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ – ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ.
ΜΑΘ106/3122 – Γλώσσα Προγραμματισμού Ξ. Ζαμπούλης ΜΑΘ106/3122 Γλώσσα Προγραμματισμού Δομές Δεδομένων.
ΗΥ 150 – ΠρογραμματισμόςΞενοφών Ζαμ π ούλης ΗΥ -150 Προγραμματισμός Αλγόριθμοι και Προγράμματα.
Γλώσσες Προγραμματισμού Μεταγλωττιστές Πίνακας Συμβόλων Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου.
ΜΕΤΑΒΛΗΤΕΣ-ΣΤΑΘΕΡΕΣ -ΕΚΦΡΑΣΕΙΣ
Διερεύνηση γραφήματος
Δομές.
Ενότητα 9: Δείκτες και Δυναμική Διαχείριση Μνήμης.
Τύποι Μεταβλητών Τελεστές Βασική Είσοδος/Έξοδος
EPL231 – Data Structures and Algorithms
Εισαγωγή στον Προγ/μό Υπολογιστών
ΗΥ-150 Προγραμματισμός Αναδρομή (1/2).
Μεταγράφημα παρουσίασης:

ΗΥ 150 – ΠρογραμματισμόςΞενοφών Ζαμ π ούλης ΗΥ -150 Προγραμματισμός Δομές Δεδομένων

ΗΥ 150 – Προγραμματισμός Ξενοφών Ζαμ π ούλης 2 Δομές Δεδομένων (Data Structures) Καινούργιοι τύ π οι δεδομένων π ου α π οτελούνται α π ό την ομαδο π οίηση υ π αρχόντων τύ π ων δεδομένων Ομαδο π οίηση π ληροφορίας π ου δεν μ π ορεί να α π οθηκευτεί σε μία μόνον μεταβλητή α π ό τους δοσμένους τύ π ους της C Συλλογή μη διατεταγμένων και ομοιογενών τιμών Πλεονέκτημα : Καλύτερη οργάνωση – διαχείριση π ληροφορίας π ιο ευέλικτος σχεδιασμός ΌνομαΤίτλος # Ταυτότητας ΜισθόςΧρόνια Κώσταςδιευθυντής Α ΠΛ Υ π άλληλοςΒ ΑΛ Υ π άλληλοςΒ ΒΛ Υ π άλληλοςΒ

ΗΥ 150 – Προγραμματισμός Ξενοφών Ζαμ π ούλης 3 Ορισμός Δομών Ορισμός νέου τύ π ου δομής struct employee { char *name; char title[20]; char id[8]; double salary; int years; }e; Τα name, title, id, salary, years ονομάζονται τα μέλη ή π εδία της δομής To employee ονομάζεται η ετικέτα της δομής nametitle idsalary years e

ΗΥ 150 – Προγραμματισμός Ξενοφών Ζαμ π ούλης 4 Δήλωση Μεταβλητών Τύ π ου Δομής struct employee e1, e2; struct employee *pe; struct employee manager = { “AB”, “manager”, “A11111”, 2000, 2}; struct employee e3 = {0}; // μηδενίζει όλα τα στοιχεία

ΗΥ 150 – Προγραμματισμός Ξενοφών Ζαμ π ούλης 5 Χρήση Δομών Σαν κανονικές μεταβλητές για την α π οθήκευση π ληροφορίας Σαν ορίσματα σε Συναρτήσεις : void printEmployee( struct employee e); Σαν ε π ιστρεφόμενες τιμές α π ό συναρτήσεις : struct employee newEmployee(char *name, char *pos, char *id, double sal, int y); Σαν ε π ιστρεφόμενες τιμές α π ό συναρτήσεις ως δείκτες : struct employee *newEmployee(char *name, char *pos, char *id, double sal, int y);

ΗΥ 150 – Προγραμματισμός Ξενοφών Ζαμ π ούλης 6 Πρόσβαση στα Περιεχόμενα της Δομής struct point { int x; int y; } p; Με τον τελεστή. ( τελεία ) α π οκτούμε π ρόσβαση στα μέλη της δομής p.x = p.y = 10;

ΗΥ 150 – Προγραμματισμός Ξενοφών Ζαμ π ούλης 7 Εμφωλιασμένες Δομές Δομές ως μέλη άλλων δομών είναι ε π ιτρε π τά : struct point { int x; int y; }; struct rectangle { struct point topleftcorner; struct point bottomrightcorner; } rect1; Πρόσβαση με διαδοχικές τελείες (.) rect1.topleftcorner.x = 10; Παίρνουμε το π εδίο x του π εδίου topleftcorner της μεταβλητής rect1 bottomrightcorner topleftcorner xy xy rect1

ΗΥ 150 – Προγραμματισμός Ξενοφών Ζαμ π ούλης 8 Πίνακες α π ό Δομές Ό π ως και για κάθε άλλο τύ π ο : struct point { int x; int y; } p; struct point points[100]; points[2].x = 10;

ΗΥ 150 – Προγραμματισμός Ξενοφών Ζαμ π ούλης 9 Δείκτες σε Δομές struct employee { char *name; char title[20]; char id[8]; double salary; int years; }; // Δήλωση της δομής employee struct employee *e ; // Δήλωση της μεταβλητής e ως δείκτης σε δομή. struct employee d; // Δήλωση της μεταβλητής d ως δομή τύπου employee e = &d; // το e παίρνει τιμή την διεύθυνση της δομής d e = (struct employee *) malloc(100*sizeof(struct employee)); // το e είναι δείκτης σε πίνακα 100 στοιχείων struct employee e[0].salary = 1000;

ΗΥ 150 – Προγραμματισμός Ξενοφών Ζαμ π ούλης 10 Δείκτες σε Δομές struct employee *e; Πρόσβαση στα π εριεχόμενα του δείκτη – (*e) τα π εριεχόμενα του δείκτη είναι η δομή – (*e).title το π εδίο title της δομής π ου δείχνει ο e – e[0].title συνώνυμο του π αρα π άνω – e->title συνώνυμο του π αρα π άνω Προσοχή στις π ροτεραιότητες των τελεστών : – (*e).title – *e.title είναι ισοδύναμο με *(e.title) π ου δεν είναι α π οδεκτό για την συγκεκριμένη δήλωση του e

ΗΥ 150 – Προγραμματισμός Ξενοφών Ζαμ π ούλης 11 Ε π ιτρε π τές Πράξεις σε Δομές struct point { int x; int y; } p1, p2; Αντιγραφή p1 = p2; Α π όδοση τιμής σαν σύνολο με λίστα σταθερών τιμών για τα μέλη : p1 = {5, 6}; Εξαγωγή διεύθυνσης : &p1 Προσ π έλαση των μελών : p1.x ΔΕΝ ΕΠΙΤΡΕΠΕΤ AI η σύγκριση δομών fread(), fwrite()

ΗΥ 150 – Προγραμματισμός Ξενοφών Ζαμ π ούλης 12 Δομή Δεδομένων : Πίνακας Οργάνωση των δεδομένων : – το ένα μετά το άλλο στην μνήμη Τελεστές : – Δημιουργία π ίνακα με συγκεκριμένο αριθμό στοιχείων – Α π οδέσμευση π ίνακα με συγκεκριμένο αριθμό στοιχείων – Εισαγωγή στοιχείου σε συγκεκριμένη θέση – Ανάκτηση ενός στοιχείου α π ό δεδομένη θέση Αλγόριθμοι : τους π εριέχει ο μεταγλωττιστής της C – int a[100]; ή a = (int *)malloc(100 * sizeof(int)); – με το π έρας της εμβέλειας του a ή free(a); – a[34] = 7; – b = a[36];

ΗΥ 150 – Προγραμματισμός Ξενοφών Ζαμ π ούλης 13 Πίνακας Οργάνωση των δεδομένων : θεωρούμε τα δεδομένα μας διατεταγμένα ( το ένα ακολουθεί το άλλο ) // Δημιουργία struct employee *newEmployee(int number) { struct employee *e; int i; e = (struct employee *)malloc(number*sizeof(struct employee )); for (i = 0; i < number; ++i) e[i].salary = 1000; return e; } // επέκταση e = (struct employee *)realloc(e,number*sizeof(struct employee )); // Διαγραφή … // Αναζήτηση … // Εκτύπωση …

ΗΥ 150 – Προγραμματισμός Ξενοφών Ζαμ π ούλης 14 Πρόγραμμα Δημιουργεί ένα δυναμικό π ίνακα α π ό τυχαία σημεία του χώρου. Υ π ολογίζει όλα τα δυνατά τρίγωνα π ου δημιουργούνται α π ό τα σημεία αυτά και τα εκτυ π ώνει. Μετά διαγράφει τυχαία κά π οια μέλη του π ίνακα και τυ π ώνει ξανά τα τρίγωνα. Μετά α π οδεσμεύει τη μνήμη του π ίνακα.

ΗΥ 150 – Προγραμματισμός Ξενοφών Ζαμ π ούλης 15 Typedef Ορισμός νέων ονομάτων για τους τύ π ους των μεταβλητών typedef τυ π ος όνομα ; – Κάνει συνώνυμο το όνομα με τον τύ π ο – typedef unsigned long int size_t Το size_t γίνεται συνώνυμο του unsigned long int Αντί unsigned long int var1 ; – size_t var ;

ΗΥ 150 – Προγραμματισμός Ξενοφών Ζαμ π ούλης 16 Παραδείγματα typedef typedef struct employee employee; employee e; typedef struct employee { char *name; char title[20]; } Employee; Χωρίς την typedef μ π ροστά δηλώνει μια μεταβλητή τύ π ου struct employee. Με την typedef δηλώνει ότι το όνομα Employee είναι συνώνυμο του struct employee.

ΗΥ 150 – ΠρογραμματισμόςΞενοφών Ζαμ π ούλης ΗΥ -150 Προγραμματισμός Αυτοαναφορικές Δομές Δυναμικές Δομές Δεδομένων : Λίστες

ΗΥ 150 – Προγραμματισμός Ξενοφών Ζαμ π ούλης 18 Αυτοαναφορικές Δομές Δομές π ου π εριέχουν ως μέλη δείκτες σε δομές ίδιου τύ π ου struct node { int x; struct node *next; };

ΗΥ 150 – Προγραμματισμός Ξενοφών Ζαμ π ούλης 19 Αυτοαναφορικές Δομές x next ?

ΗΥ 150 – Προγραμματισμός Ξενοφών Ζαμ π ούλης 20 Αυτοαναφορικές Δομές xx next NULL x next

ΗΥ 150 – Προγραμματισμός Ξενοφών Ζαμ π ούλης 21 Αυτοαναφορικές Δομές Με π ερισσότερους α π ό ένα δείκτες μ π ορούμε να έχουμε π ολύ π ολύ π λοκες δομές δεδομένων struct node { int x; struct node *first; struct node *sec; struct node *third; };

ΗΥ 150 – Προγραμματισμός Ξενοφών Ζαμ π ούλης 22 Αυτοαναφορικές Δομές x first sec third x first sec third x first sec third x first sec third NULL Τι είδους συνδεσμολογίες έχουν νόημα και είναι χρήσιμες; Τα NULL δηλώνουν ότι δεν δείχνει πουθενά ο δείκτης

ΗΥ 150 – Προγραμματισμός Ξενοφών Ζαμ π ούλης 23 Δείκτες, Πίνακες και Δομές Δήλωση του τύ π ου – struct somestruct *ptr; Τι είναι και π ως έχουμε π ρόσβαση ; Περί π τωση 1: – μια μοναδική μεταβλητή τύ π ου struct somestruct – Πρόσβαση : ptr->member – Δέσμευση μνήμης Στατικά : – struct somestruct a; – ptr = &a; Δυναμικά : – ptr = (struct somestruct *)malloc(sizeof(struct somestruct ));

ΗΥ 150 – Προγραμματισμός Ξενοφών Ζαμ π ούλης 24 Δείκτες, Πίνακες και Δομές Δήλωση του τύ π ου – struct somestruct *ptr; Περί π τωση 2: – ένας π ίνακας α π ό μεταβλητές τύ π ου struct somestruct – Πρόσβαση : ptr[index].member – Δέσμευση μνήμης Στατικά : – struct somestruct a[100]; – ptr = a; ή ptr = &a[0]; Δυναμικά : – ptr = (struct somestruct *)malloc(100*sizeof(struct somestruct));

ΗΥ 150 – Προγραμματισμός Ξενοφών Ζαμ π ούλης 25 Δείκτες, Πίνακες και Δομές Δήλωση του τύ π ου – struct somestruct *ptr; Περί π τωση 3: – μια δυναμική δομή δεδομένων με στοιχεία μεταβλητές τύ π ου struct somestruct – Πρόσβαση : εξαρτάται α π ό την δομή δεδομένων – Δέσμευση μνήμης : εξαρτάται α π ό την δομή δεδομένων Ο π ρογραμματιστής π ρέ π ει να ξέρει την σημασιολογία της ptr και να την χρησιμο π οιεί ανάλογα !

ΗΥ 150 – Προγραμματισμός Ξενοφών Ζαμ π ούλης 26 Δομές Δεδομένων Ορισμός : – Μια συλλογή δεδομένων οργανωμένα με συγκεκριμένο τρό π ο + ένα σύνολο τελεστών π ου ε π ενεργούν π άνω στην συλλογή + αλγόριθμοι π ου υλο π οιούν τους τελεστές Δέντρα ( δυαδικά και μη, B, R, Red-Black, κτλ ) Γράφοι ( διαταγμένοι, με βάρη, α π λοί ή όχι, υ π εργράφοι κτλ ) Λίστες, ουρές, στοίβες, π ίνακες, π ίνακες κατακερματισμού (hash tables)

ΗΥ 150 – Προγραμματισμός Ξενοφών Ζαμ π ούλης 27 Α π λά Συνδεδεμένη Λίστα Οργάνωση των δεδομένων : – θεωρούμε τα δεδομένα μας διατεταγμένα ( το ένα ακολουθεί το άλλο ) – το καθένα δείχνει στο ε π όμενο του στην μνήμη struct node { int x; struct node *next; }; struct node *root; x=5x=15 next NULL x=-2 next root

ΗΥ 150 – Προγραμματισμός Ξενοφών Ζαμ π ούλης 28 Α π λά Συνδεδεμένη Λίστα Τελεστές : – Δημιουργία κενής λίστας – Α π οδέσμευση λίστας – Εισαγωγή στοιχείου μετά α π ό ένα στοιχείο – Διάσχιση της λίστας – Ανάκτηση ενός στοιχείου με συγκεκριμένο π εριεχόμενο

ΗΥ 150 – Προγραμματισμός Ξενοφών Ζαμ π ούλης 29 Α π λά Συνδεδεμένη Λίστα Αλγόριθμοι : Ας τους φτιάξουμε ! Εισαγωγής Διαγραφής Αναζήτησης Εκτύ π ωση …

ΗΥ 150 – Προγραμματισμός Ξενοφών Ζαμ π ούλης 30 Δι π λά Συνδεδεμένη Λίστα Οργάνωση των δεδομένων : – θεωρούμε τα δεδομένα μας διατεταγμένα ( το ένα ακολουθεί το άλλο ) – το καθένα δείχνει στο ε π όμενο και στο π ροηγούμενο του στην μνήμη struct node { int x; struct node *next; struct node *prev; }; NULL x=5 next prev x=15 next prev x=-2 next prev

ΗΥ 150 – Προγραμματισμός Ξενοφών Ζαμ π ούλης 31 Πρόγραμμα Δημιουργεί μια α π λά συνδεδεμένη λίστα α π ό τυχαίους ακεραίους, τους εκτυ π ώνει. Μετά διαγράφει τυχαία κά π οια μέλη της λίστας και την ξανατυ π ώνει. Μετά α π οδεσμεύει τη μνήμη της λίστας.