Δηάιεμε 9: Σηνίβεο:Υινπνίεζε & Εθαξκνγέο

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

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

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

Γηάιεμε 7: Αλαδξνκή. Σηελ ελφηεηα απηή ζα κειεηεζνχλ ηα εμήο επηκέξνπο ζέκαηα:

Απαντήσεις θέματος 2. Παξαθάησ αθνινπζεί αλαιπηηθή επίιπζε ησλ εξσηεκάησλ.

Δηάιεμε 10: Λίζηεο Υινπνίεζε & Εθαξκνγέο

Δηάιεμε 8: Αθεξεκέλνη Τύπνη Δεδνκέλσλ

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

B-Δέλδξα. Τα B-δέλδξα ρξεζηκνπνηνύληαη γηα ηε αλαπαξάζηαζε πνιύ κεγάισλ ιεμηθώλ πνπ είλαη απνζεθεπκέλα ζην δίζθν.

Ενδεικτικά Θέματα Στατιστικής ΙΙ

Βασικές Δομές Δεδομένων

ΕΠΛ 231 Δομές Δεδομένων και Αλγόριθμοι 4-1

Constructors and Destructors in C++

ηδάζθσλ: εµήηξεο Εετλαιηπνύξ

ΔΕΟ 13. Ποσοτικές Μέθοδοι. θαη λα ππνινγίζεηε ην θόζηνο γηα παξαγόκελα πξντόληα. Να ζρεδηαζηεί γηα εύξνο πξντόλησλ έσο

Q Η ζσνάρηηζη μέζοσ κόζηοσς μας δίνει ηο κόζηος ανά μονάδα παραγωγής. Q Η ζσνάρηηζη μέζοσ κόζηοσς μας δίνει ηο ζηαθερό κόζηος ανά μονάδα παραγωγής

ΓΗΑΓΩΝΗΣΜΑ ΣΤΑ ΜΑΘΖΜΑΤΗΚΑ. Ύλη: Μιγαδικοί-Σσναρηήζεις-Παράγωγοι Θεη.-Τετν. Καη Εήηημα 1 ο :

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

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΣΙΚΗ ΚΤΣΑΛΟΓΡΟΜΙΑ 2007 ΓΙΑ ΣΟ ΓΤΜΝΑΙΟ Παπασκευή 26 Ιανουαπίου 2007 Σάξη: Α Γυμνασίου ΥΟΛΕΙΟ..

iii. iv. γηα ηελ νπνία ηζρύνπλ: f (1) 2 θαη

Γοκή επαλάιευες Δληοιές Όζο & Μέτρης_όηοσ

Αζκήζεις ζτ.βιβλίοσ ζελίδας 13 14

Άμεσοι Αλγόριθμοι: Προσπέλαση Λίστας (list access)

Αντισταθμιστική ανάλυση

ΜΑΘΗΜΑ / ΤΑΞΗ : ΗΛΕΚΤΡΟΛΟΓΙΑ/Γ ΛΥΚΕΙΟΥ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 08/09/2014

ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ. Οξηδόληηα θαη θαηαθόξπθε κεηαηόπηζε παξαβνιήο

Σήκαηα Β Α Γ Γ Δ Λ Η Σ Ο Ι Κ Ο Ν Ο Μ Ο Υ Γ Ι Α Λ Δ Ξ Η - ( 2 ) ΕΙΣΑΓΨΓΗ ΣΤΙΣ ΤΗΛΕΠΙΚΟΙΝΨΝΙΕΣ

Α. Εηζαγσγή ηεο έλλνηαο ηεο ηξηγσλνκεηξηθήο εμίζσζεο κε αξρηθό παξάδεηγκα ηελ εκx = 2

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

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

Κατ οίκον Εργασία 2 Σκελετοί Λύσεων

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΣΙΚΗ ΚΤΣΑΛΟΓΡΟΜΙΑ 2007 ΓΙΑ ΣΟ ΓΤΜΝΑΙΟ Παπασκευή 26 Ιανουαπίου 2007 Σάξη: Α Γυμνασίου ΥΟΛΕΙΟ..

Hellas online Προεπιλεγμένες ρσθμίσεις για FritzBox Fon WLAN 7140 (Annex B) FritzBox Fon WLAN Annex B ( )

ΣΕΙ Δυτικήσ Μακεδονίασ, Παράρτημα Καςτοριάσ Τμήμα Πληροφορικήσ και Τεχνολογίασ Υπολογιςτών

TOOLBOOK (μάθημα 2) Δεκηνπξγία βηβιίνπ θαη ζειίδσλ ΠΡΟΑΡΜΟΓΗ: ΒΑΛΚΑΝΙΩΣΗ ΔΗΜ. ΕΚΠΑΙΔΕΤΣΙΚΟ ΠΕ19 1 TOOLBOOK ΜΑΘΗΜΑ 2

Διάλεξη 9: Αφηρημένοι Τύποι Δεδομένων. Διδάσκων: Παναγιώτης Ανδρέου

Βασικές οµές εδοµένων

ΠΑΝΔΛΛΑΓΗΚΔ ΔΞΔΣΑΔΗ Γ ΖΜΔΡΖΗΟΤ ΓΔΝΗΚΟΤ ΛΤΚΔΗΟΤ Γεσηέρα 10 Ηοσνίοσ 2019 ΔΞΔΣΑΕΟΜΔΝΟ ΜΑΘΖΜΑ: ΜΑΘΖΜΑΣΗΚΑ ΠΡΟΑΝΑΣΟΛΗΜΟΤ. (Ενδεικηικές Απανηήζεις)

H ΜΑΓΕΙΑ ΤΩΝ ΑΡΙΘΜΩΝ

ΚΔΦ. 2.4 ΡΗΕΔ ΠΡΑΓΜΑΣΗΚΩΝ ΑΡΗΘΜΩΝ

Πολυεπίπεδα/Διασυμδεδεμέμα Δίκτυα

Τίτλος Μαθήματος: Ηλεκτρονικοί Υπολογιστές IΙΙ. Διδάσκων: Επίκουρος Καθηγητής Αθανάσιος Σταυρακούδης

Ενότητα 2: Στοίβες Ουρές - Λίστες Ασκήσεις και Λύσεις

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

Δπηιέγνληαο ην «Πξνεπηινγή» θάζε θνξά πνπ ζα ζπλδέεζηε ζηελ εθαξκνγή ζα βξίζθεζηε ζηε λέα ρξήζε.

Απνηειέζκαηα Εξσηεκαηνινγίνπ 2o ηεηξάκελν

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

4) Να γξάςεηε δηαδηθαζία (πξόγξακκα) ζηε Logo κε όλνκα θύθινο πνπ ζα ζρεδηάδεη έλα θύθιν. Λύζε Γηα θύθινο ζηθ επαλάιαβε 360 [κπ 1 δε 1] ηέινο

Παιχνίδι γλωζζικής καηανόηζης με ζχήμαηα!

Αιγόξηζκνη Γνκή επηινγήο. Πνιιαπιή Δπηινγή Δκθωιεπκέλεο Δπηινγέο. Δηζαγωγή ζηηο Αξρέο ηεο Δπηζηήκεο ηωλ Η/Υ. introcsprinciples.wordpress.

ΗΥ-150 Πξνγξακκατησκόο Ταμηλόκεσε θαη Αλαδήτεσε

Κευάλαιο 8 Μονοπωλιακή Συμπεριφορά- Πολλαπλή Τιμολόγηση

Διαηιμήζεις για Αιολικά Πάρκα. Κώδικες 28, 78 και 84

ΑΛΛΑΓΗ ΟΝΟΜΑΣΟ ΚΑΙ ΟΜΑΔΑ ΕΡΓΑΙΑ, ΚΟΙΝΟΥΡΗΣΟΙ ΦΑΚΕΛΟΙ ΚΑΙ ΕΚΣΤΠΩΣΕ ΣΑ WINDOWS XP

Ππογπαμμαηιζμόρ Ι (ΗΥ120)

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΤΙΚΗ ΣΚΥΤΑΛΟΓΡΟΜΙΑ 2015 ΓΙΑ ΤΟ ΓΥΜΝΑΣΙΟ Τεηάπηη 28 Ιανουαπίου 2015 ΛΔΥΚΩΣΙΑ Τάξη: Α Γυμναζίου

EL Eνωμένη στην πολυμορυία EL A8-0046/319. Τροπολογία

Μονοψϊνιο. Αγνξά κε ιίγνπο αγνξαζηέο. Δύναμη μονοψωνίος Η ηθαλόηεηα πνπ έρεη ν αγνξαζηήο λα επεξεάζεη ηελ ηηκή ηνπ αγαζνύ.

ΘΔΚΑ ΡΖΠ ΑΛΑΓΛΩΟΗΠΖΠ

ΚΕΦ. 2.3 ΑΠΟΛΤΣΗ ΣΘΜΗ ΠΡΑΓΜΑΣΘΚΟΤ ΑΡΘΘΜΟΤ

Να ζρεδηάζεηο ηξόπνπο ζύλδεζεο κηαο κπαηαξίαο θαη ελόο ιακπηήξα ώζηε ν ιακπηήξαο λα θσηνβνιεί.

ΠΑΝΔΛΛΑΓΗΚΔ ΔΞΔΣΑΔΗ Γ ΣΑΞΖ ΖΜΔΡΖΗΟΤ ΓΔΝΗΚΟΤ ΛΤΚΔΗΟΤ Γευηέρα 11 Ηουνίου 2018 ΔΞΔΣΑΕΟΜΔΝΟ ΜΑΘΖΜΑ: ΜΑΘΖΜΑΣΗΚΑ ΠΡΟΑΝΑΣΟΛΗΜΟΤ. (Ενδεικηικές Απανηήζεις)

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

ΘΔΜΑ 1 ο Μονάδες 5,10,10

f '(x)g(x)h(x) g'(x)f (x)h(x) h'(x) f (x)g(x)

x-1 x (x-1) x 5x 2. Να απινπνηεζνύλ ηα θιάζκαηα, έηζη ώζηε λα κελ ππάξρνπλ ξηδηθά ζηνπο 22, 55, 15, 42, 93, 10 5, 12

(Ενδεικηικές Απανηήζεις) ΘΔΜΑ Α. Α1. Βιέπε απόδεημε Σει. 262, ζρνιηθνύ βηβιίνπ. Α2. Βιέπε νξηζκό Σει. 141, ζρνιηθνύ βηβιίνπ

Γ ΣΑΞΖ ΔΝΗΑΗΟΤ ΛΤΚΔΗΟΤ ΔΞΔΣΑΕΟΜΔΝΟ ΜΑΘΖΜΑ: ΜΑΘΖΜΑΣΗΚΑ ΘΔΣΗΚΩΝ ΚΑΗ ΟΗΚΟΝΟΜΗΚΩΝ ΠΟΤΓΩΝ ΤΝΑΡΣΖΔΗ ΟΡΗΑ ΤΝΔΥΔΗΑ (έως Θ.Bolzano) ΘΔΜΑ Α

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

Κινητός και Διάχυτος Υπολογισμός (Mobile & Pervasive Computing)

Κεθάιαην 20. Ελαχιστοποίηση του κόστους

ΔΙΑΓΩΝΙΣΜΑ ΣΤΗ ΦΥΣΙΚΗ. Ύλη: Εσθύγραμμη Κίνηζη

Σημεία Ασύπματηρ Ππόσβασηρ (Hot-Spots)

Δομή ππογπάμμαηορ ζηη C++

Ενότητα 2: Στοίβες Ουρές - Λίστες Ασκήσεις και Λύσεις

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΔΣΑΙΡΔΙΑ ΠΑΓΚΤΠΡΙΟ ΓΙΑΓΩΝΙΜΟ Α ΛΤΚΔΙΟΤ. Ημεπομηνία: 10/12/11 Ώπα εξέτασηρ: 09:30-12:30 ΠΡΟΣΔΙΝΟΜΔΝΔ ΛΤΔΙ

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΔΣΑΙΡΔΙΑ ΠΑΓΚΤΠΡΙΟ ΓΙΑΓΩΝΙ ΜΟ

ΔΝΓΔΙΚΤΙΚΔΣ ΛΥΣΔΙΣ ΣΤΑ ΜΑΘΗΜΑΤΙΚΑ ΚΑΤΔΥΘΥΝΣΗΣ Γ ΛΥΚΔΙΟΥ ΓΔΥΤΔΡΑ 27 ΜΑΪΟΥ 2013

Επωηήζειρ Σωζηού Λάθοςρ ηων πανελλαδικών εξεηάζεων Σςναπηήζειρ

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

ΡΤΘΜΙΕΙ ΔΙΚΣΤΟΤ ΣΑ WINDOWS

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

Δξγαζηεξηαθή άζθεζε 03. Σηεξενγξαθηθή πξνβνιή ζην δίθηπν Wulf

6 η Εργαζηηριακή Άζκηζη Επαλήθεσζη Λειηοσργίας Βαζικών Φλιπ-Φλοπ

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

Βάσεις Δεδομέμωμ. Εξγαζηήξην V. Τκήκα Πιεξνθνξηθήο ΑΠΘ

Κόληξα πιαθέ ζαιάζζεο κε δηαζηάζεηο 40Υ40 εθ. Καξθηά 3 θηιά πεξίπνπ κε κήθνο ηξηπιάζην από ην πάρνο ηνπ μύινπ θπξί κεγάιν θαη ππνκνλή

Δξγαιεία Καηαζθεπέο 1 Σάμε Σ Δ.Κ.Φ.Δ. ΥΑΝΙΧΝ ΠΡΧΣΟΒΑΘΜΙΑ ΔΚΠΑΙΓΔΤΗ. ΔΝΟΣΗΣΑ 11 ε : ΦΧ ΔΡΓΑΛΔΙΑ ΚΑΣΑΚΔΤΔ. Καηαζθεπή 1: Φαθόο κε ζσιήλα.

ΑΝΤΗΛΙΑΚΑ. Η Μηκή ζθέθηεθε έλαλ ηξόπν, γηα λα ζπγθξίλεη κεξηθά δηαθνξεηηθά αληειηαθά πξντόληα. Απηή θαη ν Νηίλνο ζπλέιεμαλ ηα αθόινπζα πιηθά:

Άζκηζη ζτέζης κόζηοσς-τρόνοσ (Cost Time trade off) Καηαζκεσαζηική ΑΔ

7. ΚΑΤΑΧΩΡΗΤΕΣ ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ. 3. Έλαο θαηαρσξεηήο SISO ησλ 4 bits έρεη: α) Μία είζνδν, β) Δύν εηζόδνπο, γ) Σέζζεξεηο εηζόδνπο.

υναµικές οµές εδοµένων (συν.) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα:

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

ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 4 ΣΥΝΔΥΑΣΤΙΚΑ ΚΥΚΛΩΜΑΤΑ

Άσκηση 1 - Μοπυοποίηση Κειμένου

ΔΦΑΡΜΟΜΔΝΑ ΜΑΘΗΜΑΣΙΚΑ ΣΗ ΧΗΜΔΙΑ Ι ΘΔΜΑΣΑ Α επηέκβξηνο Να ππνινγηζηνύλ νη κεξηθέο παξάγσγνη πξώηεο ηάμεο ηεο ζπλάξηεζεο f(x,y) =

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

ΥΡΙΣΟΤΓΔΝΝΙΑΣΙΚΔ ΚΑΣΑΚΔΤΔ

Έλαο πίνακας σσμβόλων ππνζηεξίδεη δύν βαζηθέο ιεηηνπξγίεο:

ΓΗΜΟΙΑ ΟΙΚΟΝΟΜΙΚΗ ΣΟΜΟ Γ

Transcript:

Δηάιεμε 9: Σηνίβεο:Υινπνίεζε & Εθαξκνγέο Σηελ ελόηεηα απηή ζα κειεηεζεί ε ρξήζε ζηνηβώλ ζηηο εμήο εθαξκνγέο: Υιοποίεζε Σηοηβώλ κε Δσλακηθή Δέζκεσζε Μλήκες Εθαρκογή Σηοηβώλ 1: Αλαδροκηθές ζσλαρηήζεης Εθαρκογή Σηοηβώλ 2: Ιζοδσγηζκός Παρελζέζεωλ ηδάζθσλ: εµήηξεο Ζετλαιηπνύξ ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 9-1

ΑΤΔ Σηνίβεο - Πξάμεηο Θπκεζείηε ηνλ ΑΤΔ ζηνίβα κε ηηο πξάμεηο ηνπ: MakeEmptyStack() IsEmptyStack(S) δεκηνύξγεζε ηελ θελή ζηνίβα. επέζηξεςε ηε ινγηθή ηηκή πνπ εθθξάδεη ην αλ ε S είλαη θελή. Push(x,S) εηζήγαγε ηνλ θόκβν x ζηε ζηνίβα S. Pop(S) δηέγξαςε ηνλ θόκβν θνξπθήο ηεο S. Top(S) δώζε ηνλ θόκβν θνξπθήο ηεο S. Είρακε πεη όηη απηέο νη πξάμεηο κπνξνύλ λα πινπνηεζνύλ κε ηελ ζηαηηθή δέζκεπζε κλήκεο typedef struct Stack{ int list[size]; int length; } stack ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 9-2

Σηοίβα κε Δσναμική Δέζκεπζε Μλήκεο Γηα ηελ παξάζηαζε κηαο ζηνίβαο κε ζηνηρεία α 1, α 2,..., α n ρξεζηκνπνηνύκε κηα ζπλδεδεκέλε ιίζηα από θόκβνπο. Κάζε θόκβνο απνηειείηαη από έλα ζηνηρείν (ζηνηρεία ηεο ζηνίβαο) θαη από έλα δείθηε (πξνο ηνλ επόκελν θόκβν ηεο ζηνίβαο). Η θνξπθή ηεο ζηνίβαο είλαη ν πξώηνο θόκβνο ηεο ιίζηαο, Φξεζηκνπνηνύκε κηα κεηαβιεηή γηα λα θπιάγνπκε ζηνηρεία ζρεηηθά κε ηε ζηνίβα π.ρ. μέγεθος (size) θαη δείθηε πξνο ηελ κορσθή ηης ζηοίβας (head). size=3 ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 9-3

Σηοίβα κε Δσναμική Δέζκεπζε Μλήκεο Σπλεπώο απαηηνύληαη νη παξαθάησ δειώζεηο θόκβσλ: typedef struct node { typedef struct stack { type data; NODE *head; struct node *next; int size; } NODE; } STACK; Υπνιείπεηαη ε πινπνίεζε ησλ βαζηθώλ πξάμεσλ ζηνίβαο γηα αλαπαξάζηαζε κε ζπλδεδεκέλεο ιίζηεο. Βαζική προϋπόθεζη: όιεο νη πξάμεηο λα εθηεινύληαη ρσξίο αλαδήηεζε νπνηνδήπνηε ζηνηρείνπ. ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 9-4

Σηοίβα κε Δσναμική Δέζκεπζε Μλήκεο Υινπνίεζε πξάμεσλ (ςεπδνθώδηθαο): int MakeEmptyStack(STACK *S) S->size = 0; S->head = NULL; void Pop(STACK *S) if ((S->size) > 0) p = S->head; S->head = p->next; free(p); (S->size)--; void Push(STACK *S, type x) p = (NODE *) malloc(sizeof(node)); p->data = x; p->next = S->head; S->top = p; (S->size) ++; ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 9-5

Σηοίβα κε Δσναμική Δέζκεπζε Μλήκεο int main() { STACK stack; MakeEmptyStack(&stack); // fill stack for(i=0; i<10; i++) { push(i, &stack); } // print stack for(i=0; i<10; i++) { top(&stack); pop(&stack); } } stack Size=10 head 9 8 0 Output: 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 9-6

Εθαξκνγή 1: Σηνίβεο θαη Αλαδξνκηθέο Δηαδηθαζίεο Οη ζηνίβεο βξίζθνπλ κεγάιε ρξήζε ζηελ πιεξνθνξηθή γηα δεκηνπξγία άιισλ δνκώλ θαη ζε βαζηθό ινγηζκηθό. Κιαζηθό παξάδεηγκα αθνξά ηελ κλήζη σποπρογραμμάηων (function calls) θαη αναδρομικών διαδικαζιών. Σε θάζε θιήζε νπνηαζδήπνηε ζπλάξηεζεο έλα ζύλνιν από ιέμεηο (stack frame) θπιάζζεηαη ζε κηα ζηνίβα, από όπνπ κπνξεί λα αλαζπξζεί. Όηαλ κηα ζπλάξηεζε θαιεί κηα άιιε ζπλάξηεζε νη παράμεηροι ηης ζσνάρηηζης, ε διεύθσνζη επιζηροθής θαη νη ηοπικές μεηαβληηές ηεο θαινύζαο ζπλάξηεζεο θπιάζζνληαη κέζα ζηε ζηνίβα ηνπ πξνγξάκκαηνο. Έηζη, όηαλ ε θιεζείζα ζσνάρηηζη ηερμαηίζει, ην πεξηβάιινλ ηελ θαινύζαο ζπλάξηεζεο αναζύρεηαι από ηε ζηνίβα γηα λα ζπλερηζηεί θαλνληθά ε εθηέιεζή ηεο. ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 9-7

Εθαξκνγή 1: Σηνίβεο θαη Αλαδξνκηθέο Δηαδηθαζίεο Όηαλ έλα πξόγξακκα θνξηώλεηε ζηελ κλήκε ηνπ ππνινγηζηή, ηόηε ην ε δεζκεπκέλε κλήκε νξγαλώλεηε ζε ηξεηο πεξηνρέο (segments): a) text (code) segment, b) stack segment, and c) heap segment. To text segment πεξηέρεη ηνλ θώδηθα ππό εθηέιεζε, ελώ ην heap segment επηηξέπεη ζηνλ πξόγξακκα λα δεζκεύζεη κλήκε (κε ηελ malloc!). Απηή ε κλήκε παξακέλεη κέρξη λα απνδεζκεπηεί ξεηά (κε ηελ free!) ή λα ηεξκαηηζηεί ην πξόγξακκα. To stack segment από ηελ άιιε ρξεζηκεύεη γηα λα θπιάγνληαη όιεο νη πιεξνθνξίεο ζρεηηθέο κε ηελ εθηέιεζε ζπλαξηήζεσλ. Η ενηολή ulimit -a ζηο unix δείτνει ηοσς διαθέζιμοσς πόροσς ποσ είναι διαθέζιμες ζε ένα πρόγραμμα: virtual memory, stack, cpu time, processes, κηλ. ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 9-8

Εθαξκνγή : Θζνδπγηζκόο Παξελζέζεσλ Ο έιεγρνο ζύληαμεο (π.ρ. ελόο πξνγξάκκαηνο) απαηηεί λα ηαηξηάμνπκε ζύκβνια/ιέμεηο όπσο: begin κε end else κε if παξελζέζεηο { κε } Αο ππνζέζνπκε ηελ ύπαξμε ηνπ ζπλόινπ ραξαθηήξσλ: {, }, [, ], (, ). Πξόβιεκα: λα δηαπηζηώζεηε αλ κηα ζπκβνινζεηξά πνπ πεξηέρεη ηνπο πην πάλσ ραξαθηήξεο είλαη ηζνδπγηζκέλε, δειαδή όιεο νη παξελζέζεηο ηαηξηάδνπλ. π.ρ. { [ ] } ( [ { } { } [ ] ) ) ( [ ] { ( ) } ) ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 9-9

Παξάδεηγκα Εθηέιεζεο Αλά πάζα ζηηγκή, ε ζηνίβα πεξηέρεη όιεο ηηο `αξηζηεξέο παξελζέζεηο πνπ δελ έρνπλ αθόκε `ηαηξηαζηεί. ( ( [ { [ ( ( [ { } ( ] ) [ { } ( ] ) {} ( ] ) } ( ] ) [ ( ( [ ( ( ] ) ] ) ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 9-10

Λύζε βαζηζκέλε ζε ζηνίβεο Θζνδπγηζκόο Παξελζέζεσλ MakeEmpty (S); while (c = nextcharacter() and (c is not EOF)) if c!= (,[,{, }, ], ) continue; if c = (,[,{ Push(c,S); else // pop item from stack if IsEmpty(S) report error; else d = Top(S); Pop(S); if c does not match d report error } if IsEmpty(S) report success else report error ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 9-11