Δηάιελε 6: Δηαπείνηζε Μκήμεξ & Δοκαμηθέξ Δμμέξ Δεδμμέκςκ

Σχετικά έγγραφα
Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Λύζεηξ αζθήζεςκ ζενμόηεηαξ

i, ημ μκμμάδμομε ζύκμιμ ηςκ

1 η Ε π α ν α λ η π τ ι κ ή Ά σ κ η σ η

Καηακμώκηαξ ηα Νέα Μέζα. Εογεκία Σηαπένα

Επακαιεπηηθό ζέμα ζημ 1 0 θεθάιαημ

ΔΙΑΓΩΝΙΣΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΓΕΝΙΚΗΣ Γ ΛΥΚΕΙΟΥ

Π α ζ ο κ ζ ή μ α η α μ ε κ ύ μ α η α ή η α κ ή δ ε γ κ ς ζ η ά : Γ ι ε ο ζ ε ν ί α, Δ ε μ μ θ ν α η ί α, α δ μ ύ ι ς η ε Γ ι ι ά δ α.

Οδεγόξ Φνήζεξ Webmail

ΙΑΘΕΙΑ Β1.1 Μ ΝΘΑΚΕΠΕΟ ΓΕ

ηδάζθςκ: εµήηνεξ Ζεσκαιηπμύν

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

ΩΤΟΣΚΛΗΡΥΝΣΗ. Δρ Εμμανουθλ Χατζημανώλης. Ωτορινολαρυγγολόγος-Χειρουργός Κεφαλής και Τραχήλου. Δ/τής της Κλινικής Κεφαλής και Τραχήλου νοσ.

Η ΠΡΟΝΟΟΚΟΜΔΙΑΚΗ ΦΡΟΝΣΙΓΑ. με ηην έγκριζη ηοσ Εθνικού Κένηροσ PHTLS διοργανώνει ζηις Ιανοσαρίοσ 2012

Multiple Choice Examination

Πνμεγμύμεκεξ γκώζεηξ: Τα παηδηά λένμοκ κα δηαβάδμοκ θαη κα γνάθμοκ θάπμηεξ θςκμύιεξ θαη μνηζμέκα γνάμμαηα.

Δηαπείνηζε πμιιαπιώκ ειεθηνμκηθώκ δηεοζύκζεωκ

Φνήζημεξ Λεηημονγίεξ ηςκ. Windows 7

Πνμθόπημξ Mαγηάηεξ,

Παραγωγή Τελικού Κώδικα. Γιώργος Μανής

ΕΞΟΡΤΞΗ & ΚΑΣΑΚΕΤΕ ΣΗΝ ΕΤΡΩΠΗ ΜΑΘΗΜΑ 43

Μυοπάθεια και τατίνες

Οκμμάδμομε δηαηεηαγμέκμ δεύγμξ με πνώημ ζημηπείμ ημ θαη δεύηενμ ημ (ζομβμιηθά:(, ) ), ημ δηζύκμιμ: { },{, . Δειαδή:

Μέηνα Αημμηθήξ Πνμζηαζίαξ

1. Camtasia. 2. Audacity. 3. Movie Maker

Αμαμεώζιμες πηγές εμέργειας

ΘΕΜΑ 1 (μμκάδεξ 25) Η πενίμδμξ ηεξ ηαιάκηςζεξ ημο ζώμαημξ αοημύ είκαη: i) Τ = π/2s ii) Τ = 2/πs iii) Τ = 1/πs iv) Τ = 2s iv) Τ = πs (αηηημιόγεζε)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

ΜΑΘΗΜΑ Β 5.1 ΟΡΓΑΝΙΜΩΝ Η ΓΓΩΓΡΑΦΙΚΗ ΚΑΣΑΝΟΜΗ ΣΩΝ. Ελέμη Γ. Παλούμπα, Χημικός, Πειραματικό Γυμμάσιο Σπάρτης

Θμγμηεπκία γηα Παηδηά Ζ

Κοιμό Γεωγραφικό Υπόβαθρο για το WISE

ΓΤΡΩΠΗ. 5 ή 6 ΕΙΓΞΓΟ ΑΓΞΜΝΜΞΖΗΕ ΓΗΔΞΜΙΕ ΖΠΑΘΖΗΜ ΝΑΚΜΞΑΙΑ ΒΓΚΓΠΖΑ-ΦΘΩΞΓΚΠΖΑ-ΟΖΓΚΑ-ΞΩΙΕ ΑΚΑΩΞΕΟΓΖΟ : 5ΕΙΓΞΓΟ : ΗΑΘΓ ΠΞΖΠΕ 6ΕΙΓΞΓΟ : KAΘΓ ΠΞΖΠΕ

Κα ακαγκςνίζμομε ημ ηηηάκημ ένγμ (όιςκ) ηςκ ενγαδμμέκςκ ζημ CERN. Να απμθηήζμομε βηςμαηηθέξ γκώζεηξ γηα πενίπιμθεξ έκκμηεξ ηςκ Φοζηθώκ Γπηζηεμώκ.

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

υναµικές οµές εδοµένων

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

Η Άιμτα. Οη γμκείξ ηεξ θαη μη γμκείξ ηεξ Ζόιεξ έθακακ μήκοζε ζημ πνώεκ αθεκηηθό ημοξ θαη θαηάθενακ κα ημκ θοιαθίζμοκ.

Γοθεμία Παπαδμπμύιμο-Αιαηάθε

ΕΙΗΓΗΗ: Σα Πληροθοριακά σζηήμαηα ηων Νοζοκομείων ζηην Ελλάδα ηης κρίζης: Ο ρόλος ηοσ cloud computing & ηοσ Εζωηερικού Ελέγτοσ

Εργαστήριο 4: Υλοποίηση Αφηρημένου Τύπου Δεδομένων: Ταξινομημένη Λίστα

Ιαιιηένγεηα βαθηενίςκ

GANODERMA LUCIDUM «μακηηάνη ηςκ ζεώκ» Τμ θαζμιηθό θάνμαθμ ηεξ θύζεξ

H ΑΞΙΑ ΣΗ ΓΛΙΑ ΚΑΙ ΣΟΤ ΓΛΑΙΟΛΑΔΟΤ ΜΤΘΟΙ & ΠΡΑΓΜΑΣΙΚΟΣΗΣΑ. << Γιηά & Λάδη >>

ΜΤΟΚΑΡΔΙΟΠΑΘΕΙΕ MΤΟΚΑΡΔΙΣΙΔΑ ΜΕΛΕΣΗ ΜΕ ΓΑΔΟΛΙΝΙΟ

Μελέηη Ηλεκηοικήπ Εγκαηάζηαζηπ. Δκπαιδεςηήρ: αββίδεο Μηράιεο. Σερληθή ρνιή Απγόξνπ. Μάθημα: Σερλνινγία Ηιεθηξηθώλ Εγθαηαζηάζεσλ

ΑΣΚΗΣΕΙΣ ΣΤΟΥΣ ΜΙΓΑΔΙΚΟΥΣ AΡΙΘΜΟΥΣ

ΓΑΣΡΟΟΙΟΦΑΓΙΚΗ ΠΑΛΙΝΔΡΟΜΗΗ ΚΑΙ ΑΝΑΠΝΓΤΣΙΚΟ ΤΣΗΜΑ. Δν. Δεμήηνεξ Καπεηάκμξ Γπημειεηήξ A Γαζηνεκηενμιμγηθή Κιηκηθή Γ.Ν. «Γεώνγημξ Παπακηθμιάμο»

HY-335 : Δίθηοα Υπμιμγηζηώκ

Οι ςδπαςλικέρ κονίερ για σπήζη ζηην οδοποιία και ηο ππόηςπο ΕΝ Δ. Τζαμαηζούληρ Δπ. Φημικόρ Μησανικόρ ΦΑΛΥΧ Δομικά Υλικά Α.Ε.

Tνόπμη δηαθοηηανηθήξ επηθμηκςκίαξ

Τπμιμγηζμόξ ηεξ ηαπύηεηαξ ηεξ πεμηθήξ ακηίδναζεξ ημο Mg με HCl

Προγραμματισμός Η/Υ. Ενότητα 9: Ειδικά θέματα Δομών Δεδομένων

ΜΑΘΕΜΑ Β2.1 Ε ΤΝΘΓΕ ΣΕ ΑΣΜΟΦΑΖΡΑ, Ε ΑΣΜΟΦΑΖΡΑ, ΟΖ ΑΝΓΜΟΖ.

Γπέθηαζε ηςκ Ονίςκ ηεξ Γπηιοζημόηεηαξ

Τα έλη παηδηά γεμίδμοκ με πανά ηηξ θηωπέξ μηθμγέκεηεξ.

ΔΩΚΠΑΟ ΙΓ ΠΜΚ Η. ΟΓΘ

4ε Γξαπηή Εξγαζία. Θέκα 1 ν : Μειέηε Πεξίπησζεο Α

Σ Ο Ξ Υ Η Φ Θ Ω Μ Ι Α Α Π Θ Ζ Ξ Λ Ε Μ Ω Μ

r 1 Π 1 r 2 Π 2 πέτασμα στισμή μομοτρωματικό υως στισμή

Κοσμάς Λιάμος Γενικός Ιατρός Επιμελητής Β Περιυερειακό Ιατρείο Βελβεντού Κέντρο Τγείας ερβίων

ΓΗΔΕΘΩΟΓΖΟ ΠΕΟ ΝΑΖΔΑΓΩΓΖΗΕΟ ΟΜΘΕΟ, ΑΝΘ. Αθαδεμασθό έημξ: (πνμκμιμγηθή ζεηνά)

Τίτλος Μαθήματος: Εισαγωγή στη Θεωρία και Ανάλυση Αλγορίθμων

Τα αμηκμλέα ζημ πνάζηκμ ηζάη

Μηα θμνά θη έκακ θαηνό ζε έκα μηθνό, μαθνηκό πςνηό δμύζακ δομ

Ψηφιακός Τόπος Εργασίας Γνγμδόηεξ Πνμζςπηθή Σειίδα Γνγαδόμεκμξ Πνμζςπηθή Σειίδα Μηνύματα Θέση Εργασίας Λαγωνικό Βιογραυικό

Μαθηματικά: Φτιάχνω ρομπότ με τον ηλεκτρονικό γεωπίνακα

Κεθάλαιο 3 Κρσπηογραθία δημόζιοσ κλειδιού και πιζηοποίηζη ασθεμηικόηηηας μημσμάηφμ

ΣΧΕΤ. : Η αριθ. πρωτ. Δ 17 Ε ΕΞ 2013/ Δ.Υ.Ο.

Γπημέιεηα: Ιανία Παπαιεμκηίμο, Φηιόιμγμξ

Γηζαγωγή ζηεκ Πιεζοζμηαθή Οηθμιμγία. Α. Φακηηκμύ

Problems & Questions on MAC Layer

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ 035: οµές εδοµένων και Αλγόριθµοι για Ηλεκτρολόγους Μηχανικούς και Μηχανικούς Υπολογιστών

Εργαστήριο 5: Υλοποίηση Αφηρημένου Τύπου Δεδομένων: Διπλά Συνδεδεμένη Λίστα

Διάλεξη 12: Λίστες Υλοποίηση & Εφαρμογές. Διδάσκων: Παναγιώτης Ανδρέου

ΠΓΡΙΓΥΟΜΓΝΑ ΓΙΑΓΩΓΗ...3 ΜΓΡΟ Ι ΝΟΜΟΘΓΣΙΚΟ ΠΛΑΙΙΟ ΚΑΙ ΑΝΑΝΓΩΙΜΓ ΠΗΓΓ ΓΝΓΡΓΓΙΑ ΚΓΦΑΛΑΙΟ Α ΓΘΝΙΚΟ ΘΓΜΙΚΟ ΠΛΑΙΙΟ ΣΩΝ ΑΠΓ

Κεθάιαημ 11. Πνμζεγγηζηηθμί Αιγόνηζμμη

Σωλήμες Ηλεκηρικώμ Εγκαηαζηάζεωμ. Εκπαιδεσηής: Σαββίδης Μιτάλης. Τετνική Στολή Ασγόροσ. Μάθημα: Τετνολογία Ηλεκηρικών Εγκαηαζηάζεων

ErmisWIN v & Οδεγίεξ Σέιμοξ Έημοξ ( 31/12/2015 )

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

Εργαστήριο 8: Αναδρομική διεργασία εισαγωγής καινούριου κόμβου σε ΔΔΑ

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

1 Compulsory: Σομβαίκμοκ θαηά ηεκ πνώηε πνόζβαζε

ΣΖΛΔΠΗΚΟΗΝΩΝΗΑΚΟ ΓΗΚΣΤΟ ΟΗΚΟΓΟΜΩΝ. Δθπαηδεπηήο: αββίδες Μιτάλες. Σετνική τολή Ασγόροσ. Μάζεκα: Σετνολογία Ηλεκηρικών Εγκαηαζηάζεων

Φροντιστήριο 4 Σκελετοί Λύσεων

Τβοιδικό Ιζξδύμαμξ Μξμηέλξ transistor BJT & εκηζποηέξ. Ειεθηνμκηθή Γ Σάλε /Β ελάμεκμ Γπίθ. Ηαζεγήηνηα Γ. Ηαναγηάκκε

Προγραμματισμός Δομές Δεδομένων

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

ΑΓΠΠ 2o Γπαμαληπηικό Διαγώμιζμα

Τίτλος Μαθήματος: Εισαγωγή στη Θεωρία και Ανάλυση Αλγορίθμων

αξ γκςνίδμομε όηη ζημ ΦΓΚ 222 ηεύπμξ Α δεμμζηεύηεθε μ κ. 4093/2012, ζημ άνζνμ πνώημ,

ύλνψε απνηειεζκάηωλ κεηξήζεωλ ζπγθεληξώζεωλ αηωξνύκελωλ ζωκαηίδίωλ PM 10 ζην Βόιν:

ΔΙΔΑΣΚΑΛΙΑ ΔΕΞΙΟΤΗΤΩΝ ΖΩΗΣ ΜΕΣΑ ΑΠΟ ΤΟ ΜΑΘΗΜΑ ΤΗΣ ΦΥΣΙΚΗΣ ΑΓΩΓΗΣ

ΙΑΘΕΙΑ ΟΓΛΜΡΑΘΖΗΕΟ ΑΓΩΓΕΟ ΟΓ ΓΦΕΒΜΡΟ ΓΠΩΚ

ιαφάνειες παρουσίασης #5 (β)

Αλάιπζε Αιγνξίζκωλ. Κεθ. 13: Τπραίνη Αιγόξηζκνη

H XHMEIA EINAI ΙΑΓΖΗΕ

ΥΟΛΙΚΟ ΕΣΟ ΠΡΟΓΡΑΜΜΑ ΠΓΡΙΒΑΛΛΟΝΣΙΚΗ ΑΓΩΓΗ ΣΙΣΛΟ: <<ΣΑ ΠΡΟΪΟΝΣΑ ΣΟΤ ΣΟΠΟΤ ΜΟΤ ΜΓΑ ΑΠΟ ΣΗΝ ΠΑΡΑΔΟΗ ΚΑΙ ΣΟΝ ΠΟΛΙΣΙΜΟ>>

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

2 ο Δημοτικό Σχολείο Βρομτάδου. Συμτελεστές: Σαργιώτη Βίκυ - Κριμιζής Γιάμμης

Εργαστήριο 5 Αναδρομική διεργασία εισαγωγής καινούριου κόμβου σε ΔΔΑ με αλφαβητική σειρά

Transcript:

Δηάιελε 6: Δηαπείνηζε Μκήμεξ & Δοκαμηθέξ Δμμέξ Δεδμμέκςκ Σηεκ εκόηεηα αοηή ζα μειεηεζμύκ ηα ελήξ επημένμοξ ζέμαηα: Δοκαμηθέξ Δμμέξ Δεδμμέκςκ Γεκηθά Δοκαμηθή Δέζμεοζε/Απμδέζμεοζε Μκήμεξ Δμμή ηύπμο structure Αοημακαθμνηθέξ δμμέξ Η δήιςζε typedef ζηε C ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 6-1

Δοκαμηθέξ Δμμέξ Δεδμμέκςκ Σηαηηθή Δμμή Δεδμμέκωκ Η απαηημύμεκε μκήμε γηα ηεκ εθηέιεζε ημο πνμγνάμμαημξ δεζμεύεηαη θαηά ηεκ ανπηθμπμίεζε ημο πνμγνάμμαημξ. π.π. struct person { char name[30], int age} costas, marios; // πνηκ ηεκ έκανλε ημο πνμγνάμμαημξ δεζμεύμκηαη 34Bytes * 2 Δοκαμηθή Δμμή Δεδμμέκωκ Eκα πνόγναμμα θαηά ηεκ εθηέιεζή ημο ζα μπμνεί κα δεηά δοκαμηθά μκήμε γηα ηεκ απμζήθεοζε δεδμμέκςκ θαζώξ θαη κα ειεοζενώκεη δοκαμηθά ηε μκήμε πμο δεκ πνεηάδεηαη. Σοκεπώξ ημ μέγηζημ πιήζμξ ζημηπείςκ πμο μπμνμύμε κα απμζεθεύζμομε δεκ πνεηάδεηαη κα είκαη γκςζηό εθ ηςκ πνόηενςκ αιιά μπμνεί κα μνίδεηε θαηά ηεκ δηάνθεηα εθηέιεζεξ ημο πνμγνάμμαημξ. ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 6-2

Δοκαμηθέξ Δμμέξ Δεδμμέκςκ Θα μάζμομε πςξ μπμνμύμε κα δεηήζμομε θαηά ηεκ εθηέιεζε ημο πνμγνάμμαημξ μκήμε από ημ ιεηημονγηθό ζύζηεμα θαη κα ηεκ επηζηνέρμομε όηακ μαξ είκαη πιέμκ άπνεζηε. Όηακ ημ ιεηημονγηθό ζύζηεμα δεκ είκαη ζε ζέζε κα μαξ δώζεη άιιε μκήμε ηόηε θαη μόκμ ηόηε ημ πνόγναμμά μαξ ζα ηοπώκεη μεκύμαηα αδοκαμίαξ απμζήθεοζεξ πιενμθμνηώκ, θάηη πμο ζομβαίκεη όμςξ ζπάκηα θαη ζοκήζςξ όηακ θάκμομε αιόγηζηε πνήζε ηεξ μκήμεξ. Τα ζύγπνμκα ιεηημονγηθά ζοζηήμαηα θάκμοκ πνήζε εηθμκηθήξ μκήμεξ (virtual memory). Δειαδή πνεζημμπμηείηαη μένμξ ηεξ δεοηενεύμοζαξ μκήμεξ (hard disk) ζακ ιμγηθή ζοκέπεηα ηεξ θύνηαξ μκήμεξ Οοζηαζηηθά ε θύνηα μκήμε ελακηιείηε μόκμ ακ ελακηιεζεί ε δεοηενεύμοζα μκήμε. ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 6-3

Δοκαμηθή Δέζμεοζε Μκήμεξ void *malloc(num_of_bytes): ε malloc() δεζμεοεη δοκαμηθά έκα ζοκεπόμεκμ block μκήμεξ (μεγέζμοξ num_of_bytes) θαη επηζηνέθεη έκα δείθηε ζημ πώνμ μκήμεξ πμο δέζμεοζε. Η malloc() επηζηνέθεη NULL όηακ ε αίηεζε δεκ μπμνεί κα ηθακμπμηεζεί (δειαδή δεκ οπάνπεη άιιε δηαζέζημε μκήμε γηα κα δμζεί). Γηα πανάδεηγμα ε malloc(sizeof(int)) δεζμεύεη μκήμε γηα ηεκ απμζήθεοζε εκόξ αθεναίμο θαη επηζηνέθεη έκα δείθηε (ηε δηεύζοκζε δειαδή) ημο πώνμο μκήμεξ πμο δέζμεοζε. Γηαηί sizeof(int) θαη όπη απιά 4 => portability (ακ θάπμηα πιαηθόνμα πνεζημμπμηεί 2 Bytes γηα ακαπανάζηαζε αθεναίςκ ηόηε ημ πνόγναμμα μαξ ελαθμιμοζεί κα είκαη ζςζηό!) Σηε C μηιάμε πάκηα γηα δείθηεξ εκόξ ζογθεθνημέκμο ηύπμο πνέπεη πάκηα κα θάκμομε cast ημκ δείθηε πμο επηζηνέθεη ε malloc() ζημκ ακηίζημηπμ ηύπμ. Δειαδή (int *) malloc(sizeof(int)) ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 6-4

Δοκαμηθή Δέζμεοζε Μκήμεξ (ζοκ) Έηζη θάκμκηαξ ηηξ παναθάης δειώζεηξ θαη θιήζεηξ: int *nump; // δήλωζη δείκηη (τωρίς δέζμεσζη μνήμης) // δέζμεσζη μνήμης για αναπαράζηαζη ενός ακέραιοσ. nump = (int *) malloc(sizeof(int)); // αρτικοποίηζη περιετομένοσ *nump = 17; // αποδέζμεσζη μνήμης free(nump); Σεμακηηθή είκαη ε πνήζε ηεξ sizeof(type) ε μπμία μαξ επηζηνέθεη ημ μέγεζμξ ακηηθεημέκμο ηύπμο type θαη μαξ απειεοζενώκεη από ηε δοζθμιία εύνεζεξ ημο πμζμύ μκήμεξ πμο απαηηείηαη γηα ηεκ απμζήθεοζε εκόξ ακηηθεημέκμο ηύπμο type. ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 6-5

Aοημακαθμνηθέξ δμμέξ struct Employee { char name[20]; int age; struct Employee manager; }; Σηεκ πημ πάκς δμμή ζα δμζεί compile error, γηαηί ημ struct Employee πνεζημμπμηείηαη θαηά ηεκ δηάνθεηα ηεξ δήιςζεξ ημο. Εκημύηηξ μπμνμύμε κα μνίζμομε δμμέξ πμο ακαθένμκηαη ζημκ εαοηό ημοξ, όπςξ ζηεκ πνμθεημέκε πενίπηςζε δμμή Employee όπμο γηα θάζε ζημηπείμ ηεξ έπμομε πεδίμ πμο ακαθένεηαη ζημκ δηεοζοκηή ημο ενγμδμηεμέκμο, πνεζημμπμηώκηαξ δείθηεξ: struct Employee { char name[20]; int age; struct Employee *manager; }; printf("%d", sizeof(struct Employee)); επηζηνέθεη 28 ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 6-6

Δμμή structure Αοημακαθμνηθέξ δμμέξ Όηακ πνεζημμπμημύμε δοκαμηθή δέζμεοζε μκήμεξ ζοκήζςξ ημ θάκμομε γηα ηεκ απμζήθεοζε όπη ηόζμ απιώκ ηύπςκ δεδμμέκςκ (int, float, char θιπ.) αιιά ακηηθεημέκωκ ηύπμο structure. Αοηό γηαηί μπμνμύμε μέζς ακηηθεημέκςκ ηύπμο structure κα θηηάλμομε θόμβμοξ, κα ημοξ ζοκδέζμομε μεηαλύ ημοξ θαη κα δεμημονγήζμομε έηζη μία ζοκδεδεμέκε ιίζηα ή άιιεξ ελειηγμέκεξ δμμέξ όπωξ ζημίβεξ, μονέξ, ιίζηεξ ακαμμκήξ, δέκηνα θιπ. Έκαξ απιόξ μνηζμόξ θόμβμο μηαξ ζοκδεδεμέκεξ ιίζηαξ είκαη μ ελήξ: struct node { int data; struct node *next; }; Πνμζέληε όηη έκα πεδίμ ηεξ δμμήξ πμο οιμπμηεί ημκ θόμβμ είκαη δείθηεξ ζηεκ ίδηα δμμή πμο μνίδεηαη. Αοηό ημ θαηκόμεκμ όπςξ είπαμε μκμμάδεηαη αοημακαθμνηθή δμμή (self-referential structures). ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 6-7

Αοημακαθμνηθέξ δμμέξ (ζοκ.) Πανόμμηα μπμνμύμε κα μνίζμομε παναιιαγή αοημακαθμνηθώκ δμμώκ όπμο δύμ δμμέξ ακαθένμκηαη ε μηα ζηεκ άιιε. Αοηό ακηημεηςπίδεηαη ςξ ελήξ: struct s1 {... struct s2 *p;... }; struct s2 {... struct s1 *q;... }; ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 6-8

Δμμή ηύπμο structure (ζοκ.) Έπμκηαξ ιμηπόκ θαζμνίζεη ηε μμνθή εκόξ θόμβμο μπμνμύμε κα θακηαζημύμε πςξ ζα είκαη μία ζοκδεδεμέκε ιίζηα με θόμβμοξ ηύπμο struct node πμο μνίζαμε κςνίηενα: head data next data next data next 17 NULL 9 14 ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 6-9

Δμμή ηύπμο structure (ζοκ.) Μηα ιίζηα 10 ζημηπείςκ ζα μπμνμύζε κα οιμπμηεζεί ςξ ελήξ: struct node *head, *temp; int i; head = (struct node *) malloc (sizeof(struct node)); temp = head; for(i=0; i<10; i++) { temp->data = i; if (i==9) break; temp->next = (struct node *) malloc(sizeof(struct node)); temp = temp->next; } temp->next = NULL; temp = head; struct node { int data; struct node *next; }; for(i=0; i<10; i++) { printf("%d %d\n", temp->data, temp->next); temp = temp->next; } Σεμείςζε: μ δείθηεξ temp είκαη βμεζεηηθόξ γηα ηεκ οιμπμίεζε ηεξ ιίζηαξ. ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 6-10

Η δήιςζε typedef ζηε C Η C πανέπεη μέζς ηεξ δήιςζεξ typedef ηε δεμημονγία κέςκ μκμμάηςκ ζε ηύπμοξ δεδμμέκςκ πμο ήδε οπάνπμοκ. Πνμζμπή: δεκ δεμημονγμύμε κέμοξ ηύπμοξ δεδμμέκςκ. Απιά βαθηίδμομε με κέα μκόμαηα ηύπμοξ πμο ήδε οπάνπμοκ. Μενηθά παναδείγμαηα είκαη ηα ελήξ: typedef int Akeraios; typedef struct node NODE; /* ηο struct node έτει οριζηεί νωρίηερα */ Έηζη μνηζμμί μεηαβιεηώκ μπμνμύκ κα οπάνλμοκ ηώνα ςξ ελήξ: Akeraios NODE len, I, arr[20]; head, tail, *temp; ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 6-11

Η δήιςζε typedef ζηε C (ζοκ.) Πμιιέξ θμνέξ βαθηίδμομε μία δμμή ηαοηόπνμκα με ημκ μνηζμό ηεξ, όπςξ ζημ πανάδεηγμα: typedef struct node { int data; } NODE; struct node *next; Είκαη θαιή ζοκήζεηα κα πνεζημμπμημύμε ςξ όκμμα ζημ typedef ημ ίδημ όκμμα ηεξ δμμήξ αιιά με θεθαιαία γνάμμαηα. Γηαηί κα πνεζημμπoημύμε ηε δήιςζε typedef ; 1. Γηαηί δεμημονγεί πημ ακαγκώζημμ θαη πημ θαηακμεηό θώδηθα. Τμ κα δειώζεηξ NODE *ptr; είκαη πημ θαηακμεηό από ημ κα δειώζεηξ έκα δείθηε ζε μία πμιύπιμθε δμμή (struct node *ptr; ). 2. Ο θώδηθαξ γίκεηαη πημ ιηηόξ. Π.π. ptr = (NODE *)malloc(sizeof(node)); ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 6-12

Δμμή ηύπμο structure (ζοκ.) Τώνα μηα ιίζηα 10 ζημηπείςκ ζα μπμνμύζε κα οιμπμηεζεί θαη ςξ ελήξ: NODE *head, *temp; int i; head = (NODE *) malloc (sizeof(node)); temp = head; for(i=0; i<10; i++) { temp->data = i; if (i==9) break; temp->next = (NODE *) malloc(sizeof(node)); temp = temp->next; } temp->next = NULL; temp = head; typedef struct node { int data; struct node *next; } NODE ; for(i=0; i<10; i++) { printf("%d %d\n", temp->data, temp->next); temp = temp->next; } Σεμείςζε: μ δείθηεξ temp είκαη βμεζεηηθόξ γηα ηεκ οιμπμίεζε ηεξ ιίζηαξ. ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 6-13