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

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

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

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

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

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

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

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

Διάλεξη 05: Αφηρημένοι Τύποι Δεδομένων

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 5. Αφηρημένοι Τύποι Δεδομένων / Στοίβες και Ουρές

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

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

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

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

Constructors and Destructors in C++

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

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

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

Δυναμικοί πίνακες. Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη κε ρξήζε πηλάθσλ. π.ρ. Σηνίβεο. α β γ δ. tail. head % N. Οπξέο Ν-1. θάησ όξην.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ενότητα 2 Στοίβες Ουρές - Λίστες. ΗΥ240 - Παναγιώτα Φατούρου 1

Στοίβες Ουρές - Λίστες

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

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

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

ΠΑΡΑΡΣΗΜΑ Δ. ΔΤΡΔΗ ΣΟΤ ΜΔΣΑΥΗΜΑΣΙΜΟΤ FOURIER ΓΙΑΦΟΡΩΝ ΗΜΑΣΩΝ

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

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

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

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

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

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

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

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

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

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

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

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

Τν Πξόγξακκα ζα αλαθνηλσζεί, ακέζσο κεηά ηηο γηνξηέο ηνπ Πάζρα.

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

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

IsEmptyList(L): επιστρέφει true αν L = < >, false

Αζθήζεηο 5 νπ θεθαιαίνπ Crash course Step by step training. Dipl.Biol.cand.med. Stylianos Kalaitzis

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές δεδομένων. Ενότητα 2η: Στοίβες Ουρές - Λίστες Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών

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

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

Δηάιεμε 13: Αιγόξηζκνη Ταμηλόκεζεο

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

ΦΥΣΙΚΗ ΤΩΝ ΡΕΥΣΤΩΝ. G. Mitsou

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

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

ΣΥΣΤΗΜΑΤΑ ΑΛΓΕΒΡΑ Α ΛΥΚΕΙΟΥ. 1. Να ιπζνύλ ηα ζπζηήκαηα. 1 0,3x 0,1y x 3 3x 4y 2 4x 2y ( x 1) 6( y 1) (i) (ii)

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

Σύνθεζη ηαλανηώζεων. Έζησ έλα ζώκα πνπ εθηειεί ηαπηόρξνλα δύν αξκνληθέο ηαιαληώζεηο ηεο ίδηαο ζπρλόηεηαο πνπ πεξηγξάθνληαη από ηηο παξαθάησ εμηζώζεηο:

Σρήκα Α. Γξάθνπκε ηα ζηνηρεία ηνπ Πξνκεζεπηή θαη παηάκε Δηζαγσγή. Σρήκα Β1

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

IV Ο ΕΛΛΗΝΙΜΟ ΣΗ ΔΤΗ,ΠΟΛΙΣΙΜΟΙ Δ.ΜΕΟΓΕΙΟΤ ΚΑΙ ΡΩΜΗ

1. Οδηγίερ εγκαηάζηαζηρ και σπήζηρ έξςπνυν καπηών και τηθιακών πιζηοποιηηικών με σπήζη ηος λογιζμικού Μοzilla Thunderbird

Ενότητα 2 Στοίβες Ουρές - Λίστες

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

Μηα ζπλάξηεζε κε πεδίν νξηζκνύ ην Α, ζα ιέκε όηη παξνπζηάδεη ηοπικό μέγιζηο ζην, αλ ππάξρεη δ>0, ηέηνην ώζηε:

(γ) Να βξεζεί ε ρξνλνεμαξηώκελε πηζαλόηεηα κέηξεζεο ηεο ζεηηθήο ηδηνηηκήο ηνπ ηειεζηή W.

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

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

ΑΓΩΜΘΡΘΙΞΘ ΤΩΠΞΘ ΡΘΡ ΛΘΙΠΕΡ ΗΚΘΙΘΕΡ ΛΘΤΑΗΚΘΔΗΡ Τ.

Η/Υ A ΤΑΞΕΩΣ ΑΕ Συστήματα Αρίθμησης. Υποπλοίαρχος Ν. Πετράκος ΠΝ

ΑΠΑΝΤΗΣΔΙΣ ΓΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ II ΔΠΑΛ

ΠΔΡΗΓΡΑΦΖ ΛΔΗΣΟΤΡΓΗΚΟΣΖΣΑ ΥΔΓΗΟΤ ΑΡΗΘΜ. 1

Οργάνωση και Δομή Παρουσιάσεων

ΟΠΤΙΚΗ Α. ΑΝΑΚΛΑΣΖ - ΓΗΑΘΛΑΣΖ

Φςζική Πποζαναηολιζμού Γ Λςκείος. Αζκήζειρ Ταλανηώζειρ 1 ο Φςλλάδιο

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

Εξγαζηήξην Πιεξνθνξηθήο

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

Σσήμα 6.1: Στημαηική αναπαράζηαζη ηης μνήμης

1 Είζοδορ ζηο Σύζηημα ΣΔΕΔ ή BPMS

ΒΗΜΑ 2. Εηζάγεηε ηνλ Κωδηθό Πξόζβαζεο πνπ ιακβάλεηε κε SMS & δειώλεηε επηζπκεηό Όλνκα Πξόζβαζεο (Username) θαη ην ζαο

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

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

α) ηε κεηαηόπηζε x όηαλ ην ζώκα έρεη κέγηζην ξπζκό κεηαβνιήο ζέζεο δ) ην κέγηζην ξπζκό κεηαβνιήο ηεο ηαρύηεηαο

Στοίβες με Δυναμική Δέσμευση Μνήμης

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

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

Έκδοζη /10/2014. Νέα λειηοσργικόηηηα - Βεληιώζεις

x x x x tan(2 x) x 2 2x x 1

Κεθάλαιο 7. Πξνζθνξά ηνπ θιάδνπ Μ. ΨΥΛΛΑΚΗ

όπου R η ακηίνα ηου περιγεγραμμένου κύκλου ηου ηριγώνου.

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

Transcript:

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

Αθεξεκέλνη Τύπνη Δεδνκέλσλ Τύπορ Δεδομένων έλαο ηύπορ καδί κε έλα ζύλνιν ππάξεων γηα ηε δημιοςπγία θαη επεξεπγαζία δεδνκέλσλ ηνπ ηύπνπ (int,char,float) Αθηπημένορ Τύπορ Δεδομένων (ΑΤΔ) καζεκαηηθό κνληέιν πνπ απνηειείηαη από έλα ή πεξηζζόηεξα πεδία οπιζμού θαη έλα ζύλνιν ππάξεων γηα επεμεξγαζία ησλ πεδίσλ νξηζκνύ. Όηαλ κηινύκε γηα έλα ΑΤΔ καο ελδηαθέξεη ε πποδιαγπαθή ηνπ θαη πσο ζα ηνλ ρξεζηκνπνηήζνπκε. Δεν μαρ ενδιαθέπει ο ηπόπορ ςλοποίηζήρ ηος μέζα ζηη μησανή. (Η πινπνίεζε ελόο ΑΤΔ κπνξεί λα αιιάμεη ρσξίο λα επεξεάζεη ηελ νξζόηεηα πξνγξακκάησλ πνπ ηνλ ρξεζηκνπνηνύλ.) ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 8-2

Αθεξεκέλνη Τύπνη Δεδνκέλσλ Παπαδείγμαηα 1. Ο ηύπορ int καδί κε ηηο πξάμεηο +, *, /,, είλαη έλαο ηύπνο δεδνκέλσλ. Γηα λα ηνλ ρξεζηκνπνηήζνπκε ρξεηάδεηαη λα γλσξίδνπκε ην ζύλνιν ησλ πξάμεσλ. Ο ηξόπνο αλαπαξάζηαζήο ηνπ ζηνλ ππνινγηζηή δελ καο ελδηαθέξεη 2. Ο Αθηπημένορ Τύπορ Δεδομένων (ΑΤΔ) Οςπά Πποηεπαιόηηηαρ, ηο οποίο είλαη έλα ζύλνιν ζηνηρείσλ ηύπνπ key (π.ρ. key (int,int) ), ζπλνδεπόκελν από ηηο πην θάησ πξάμεηο. δημιούπγηζε ηην άδεια οςπά πποηεπαιόηηηαρ, q, έλεγξε αν η οςπά q είναι άδεια βάλε ηο ζηοισείο k ζηην οςπά q, αθαίπεζε και επίζηπετε ηο μικπόηεπο ζηοισείο ηηρ q (ζύμθυνα με ηη γπαμμική διάηαξη ηηρ οςπάρ). Έναρ ΑΤΔ μποπεί να ςλοποιηθεί με πολλούρ ηπόποςρ, π.ρ. κηα νπξά πξνηεξαηόηεηαο κπνξεί λα πινπνηεζεί από δνκέο ιίζηαο, δελδξηθέο δνκέο θιπ. ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 8-3

Λίζηεο Λίζηα κηα αθνινπζία ζηνηρείσλ (πρ. Queue ή Stack όπσο ζα δνύκε ζηελ ζπλέρεηα) Λ = α 1, α 2,..., α n Αλαθεξόκαζηε ζηα ζηνηρεία ηεο ιίζηαο σο κόμβοςρ. Με Λ[i] ζα αλαθεξόκαζηε ζην i-νζηό ζηνηρείν ηεο ιίζηαο. Μήκορ κηαο ιίζηαο Λ νλνκάδεηαη ν αξηζκόο ησλ ζηνηρείσλ ηεο θαη ζπκβνιίδεηαη σο Λ. Αλ Λ = 0 ηόηε αλαθεξόκαζηε ζηελ κενή λίζηα ηελ νπνία ζπκβνιίδνπκε σο. Σπλνδεύνληαο ιίζηεο κε έλα ζύλνιν πξάμεσλ κπνξνύκε λα νξίζνπκε αθηπημένοςρ ηύποςρ δεδομένων. Φξήζηκεο πξάμεηο πεξηιακβάλνπλ ηηο πην θάησ Δεκηνπξγία ιίζηαο Εηζαγσγή λένπ θόκβνπ ζηε ιίζηα Εμαγσγή θόκβνπ από ηε ιίζηα Εύξεζε θόκβνπ κε νξηζκέλε ηδηόηεηα Δηάηαμε ηεο ιίζηαο ζύκθσλα κε θάπνηα ζρέζε ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 8-4

Λίζηεο Οη πην ζεκαληηθέο πξάμεηο ζηνλ νξηζκό ελόο ΑΤΔ-ιίζηαο είλαη ε ειζαγωγή θαη ε εξαγωγή θόκβσλ ζηα άκπα ηηρ λίζηαρ. Με βάζε ηελ πξνδηαγξαθή απηώλ ησλ πξάμεσλ, δηαθξίλνπκε δύο βαζικούρ ηύποςρ λίζηαρ πνπ έρνπλ πνιιέο θαη ζεκαληηθέο εθαξκνγέο ζε θιάδνπο επηζηεκώλ πνπ ρξεζηκνπνηνύλ ππνινγηζηηθέο κεζόδνπο. Είλαη νη αθόινπζεο: Η στοίβα (stack) πνπ έρεη κόλν έλα άθξν πξνζηηό γηα εηζαγσγέο θαη εμαγσγέο θόκβσλ. (LIFO Last In First Out) Η ουρά (queue) όπνπ γίλνληαη εηζαγσγέο ζην έλα άθξν θαη εμαγσγέο από ην άιιν. (FIFO First In First Out) Υπάξρνπλ θαη άιινη ΑΤΔ-ιίζηαο κηθξόηεξεο πξαθηηθήο ζεκαζίαο, όπσο νπξά κε δύν άθξα, πνιιαπιή ζηνίβα, θιπ ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 8-5

ΑΤΔ Λίζηα 1 : Σηνίβεο Οξίδνπκε κηα ζηνίβα σο κηα ιίζηα ζπλνδεπόκελε από ηηο πην θάησ πξάμεηο: MakeEmptyStack() IsEmptyStack(S) δεκηνύξγεζε ηελ θελή ζηνίβα. επέζηξεςε ηε ινγηθή ηηκή πνπ εθθξάδεη ην αλ ε S είλαη θελή. Push(x,S) εηζήγαγε ηνλ θόκβν x ζηε ζηνίβα S. Pop(S) δηέγξαςε ηνλ θόκβν θνξπθήο ηεο S. Top(S) δώζε ηνλ θόκβν θνξπθήο ηεο S. ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 8-6

ΑΤΔ Λίζηα 1 : Σηνίβεο Οη πξάμεηο απηέο πξνδηαγξάθνληαη από ηνπο εμήο θαλόλεο: IsEmptyStack (MakeEmptyStack()) = true IsEmptyStack(Push(x,S)) = false Pop(MakeEmptyStack()) = error Pop(Push(x,S)) = S πνιηηηθή LIFO last in, first out Top(MakeEmptyStack()) = error Top(Push(x,S)) = x ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 8-7

Υινπνίεζε ΑΤΔ Οη πξναλαθεξζείο ΑΤΔ κπνξνύλ λα πινπνηεζνύλ κε δηάθνξεο δνκέο δεδνκέλσλ ρξεζηκνπνηώληαο είηε ζηαηική είηε δςναμική σοπήγηζη κλήκεο. Σηαηική: Δέζκεπζε κλήκεο πξηλ ηελ εθθίλεζε πξνγξάκκαηνο (πρ struct node student;) Δςναμική: Δέζκεπζε κλήκεο θαηά ηελ δηάξθεηα ηεο εθηέιεζεο ( struct node *student κε malloc() θαη free()) ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 8-8

Σηοίβα κε Σηαηική Δέζκεπζε Μλήκεο Ο πην απιόο ηξόπνο είλαη ε ρξήζε κνλνδηάζηαηνπ πίλαθα. Φξεηάδεηαη λα γλσξίδνπκε από ηελ αξρή ην κήθνο ηεο ιίζηαο. Γηα ηελ παξάζηαζε ζηνίβαο κε ζηνηρεία α 1, α 2,..., α n ρξεηαδόκαζηε έλα πίλαθα Α ζηνλ νπνίν ζα απνζεθεύζνπκε ηα ζηνηρεία ηεο ζηνίβαο, Α[i- 1] = α i. Πξέπεη λα γλσξίδνπκε αλά πάζα ζηηγκή πνπ βξίζθεηαη ε θνξπθή ηεο ζηνίβαο. Έηζη ρξεζηκνπνηνύκε κηα εγγπαθή με δύο πεδία 1. έλα πίλαθα Α[0..n-1], θαη 2. κηα κεηαβιεηή Length ηύπνπ ακέπαιορ (πνπ ζπγθξαηεί ηε ζέζε θνξπθήο). 0 1 2 3 4 5 Length ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 8-9

Σηοίβα κε Σηαηική Δέζκεπζε Μλήκεο - Υινπνίεζε Ο ηύπνο δεδνκέλσλ γηα ηε Σηοίβα κε Σηαηική Δέζκεπζε Μλήκεο είλαη: typedef struct { type list[size]; int Length; Stack; Yλοποίηζη ππάξεων: MakeEmpty(Stack *S){ S->Length = 0; Push(type x, Stack *S){ if ((S->Length) < size) { S->list[S->Length]= x; (S->Length)++ int IsEmpty(Stack *S){ return (S->Length == 0); Σηαηηθή Δέζκεπζε size ζέζεσλ κλήκεο void Pop(Stack *S){ if!isempty(s) (S->Length)--; type Top(Stack *S){ if!isempty(s) return S->list[(S->Length)-1]; ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 8-10

ΑΤΔ Λίζηα 2 : Οπξέο Νέεο εηζαγσγέο γίλνληαη ζην πίζσ άθξν. Εμαγσγέο από ην κπξνζηηλό άθξν Οξίδνπκε κηα νπξά σο κηα ιίζηα ζπλνδεπόκελε από ηηο πην θάησ πξάμεηο: MakeEmptyQueue() δεκηνύξγεζε ηελ θελή νπξά <>. IsEmptyQueue(Q) επέζηξεςε ηε ινγηθή ηηκή πνπ εθθξάδεη ην αλ ε Q είλαη θελή. EnQueue (x,q) εηζήγαγε ηνλ θόκβν x ζηελ νπξά Q. DeQueue(Q) Top(Q) δηέγξαςε ηνλ θόκβν εμόδνπ ηεο Q δώζε ηνλ θόκβν εμόδνπ ηεο Q. ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 8-11

ΑΤΔ Λίζηα 2 : Οπξέο Οη πξάμεηο απηέο πξνδηαγξάθνληαη από ηνπο εμήο θαλόλεο IsEmptyQueue(MakeEmptyQueue()) = true IsEmptyQueue (EnQueue(x,Q)) = false DeQueue(MakeEmptyQueue()) = error Top (MakeEmptyQueue ()) = error πνιηηηθή FIFO first in, first out Πξνηνύ λα εηζάγνπκε ην x Top(EnQueue (x,q)) = if IsEmptyQueue( Q ) then x else Top(Q) ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 8-12

Οςπά (απλή) με Σηαηική Δέζμεςζη Μνήμηρ - Υλοποίηζη Ο ηύπνο δεδνκέλσλ πνπ ρξεηάδεηαη γηα ηε δνκή είλαη: typedef struct { type list[size]; int front; int rear; QUEUE; Υινπνίεζε πξάμεσλ: MakeEmpty(QUEUE *Q){ Q->front = Q->rear = 0; int IsEmpty(QUEUE *Q){ return (Q->front == Q->rear); // SIZE is a const variable ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 8-13

Οςπά με Σηαηική Δέζμεςζη Μνήμηρ - Υλοποίηζη Enqueue(type x, QUEUE *Q){ if (Q->rear < SIZE) { Q->list[Q->rear] = x; Q->rear++; Dequeue(QUEUE *Q){ if (!IsEmpty (Q) && (Q->front)<(Q->rear) ) { Q->front += 1; type Top(QUEUE *Q){ if (!IsEmpty(Q) return Q->list[Q->front]; ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 8-14

ΑΤΔ Λίζηα 3 : Οπξέο κε Δύν Άθξα Ο ΑΤΔ νπξά κε δύν άθξα είλαη παξόκνηνο κε ην ΑΤΔ νπξά, κε ηε δηαθνξά όηη έρεη δύν άθξα θαη επηηξέπεη εηζαγσγέο θαη εμαγσγέο θαη ζηα δύν. rear front Μηα νπξά δύν άθξσλ νξίδεηαη σο κηα ιίζηα ζπλνδεπόκελε από ηηο πην θάησ πξάμεηο: MakeEmptyQueue(), IsEmptyQueue(Q) Insert(x, Q) Eject(Q) εηζήγαγε ην ζηνηρείν x ζην κπξνζηηλό άθξν ηεο Q δηέγξαςε ηνλ θόκβν ζην πίζσ άθξν ηεο Q EnQueue (x,q) εηζήγαγε ηνλ ζηνηρείν x ζην πίζσ κέξνο ηεο Q. DeQueue(Q) Front(Q) Rear(Q) δηέγξαςε ηνλ θόκβν ζην κπξνζηηλό άθξν ηεο Q δώζε ηνλ θόκβν ζην κπξνζηηλό άθξν ηεο Q δώζε ηνλ θόκβν ζην πίζσ άθξν ηεο Q ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 8-15

Οςπά (2 ακπών) με Σηαηική Δέζμεςζη Μνήμηρ Γηα ηελ παξάζηαζε κηαο νπξάο κε ζηνηρεία α 0, α 1,..., α n-1 ρξεηαδόκαζηε έλα πίλαθα Α ζηνλ νπνίν ζα απνζεθεύζνπκε ηα ζηνηρεία ηεο νπξάο, Θα αλαθεξόκαζηε ζην ζηνηρείν Α[i-1] ζαλ α i, δύν δείθηεο πνπ πξνζδηνξίδνπλ ηα δύν πξνζηηά άθξα ηεο νπξάο. Έηζη ρξεζηκνπνηνύκε κηα εγγξαθή κε ηξία πεδία 1. έλα πίλαθα Α[n], 2. κηα κεηαβιεηή front, ηύπνπ ακέπαιορ, πνπ ζπγθξαηεί ηε ζέζε πνπ βξίζθεηαη ακέζσο πξηλ ηε ζέζε εμόδνπ, θαη 3. κηα κεηαβιεηή rear, ηύπνπ ακέπαιορ, πνπ ζπγθξαηεί ηε ζέζε ηνπ ηειεπηαίνπ ζηνηρείνπ ηεο νπξάο. Μέγεζνο νπξάο: rear-front+1 (πρ rear=2, front=0 => length=3) Length ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 8-16

Κςκλική Οςπά Γηα ιόγνπο ρώξνπ κλήκεο κπνξνύκε λα πξαγκαηνπνηήζνπκε ηελ νπξά κε κηα κυκλική δηάηαμε ησλ ιέμεσλ ηεο κλήκεο. Δειαδή ζα ζεσξνύκε όηη ε πεξηνρή κλήκεο δελ αξρίδεη κε ηε ιέμε Α[0] θαη ηειεηώλεη κε ηε ιέμε Α[n-1], αιιά όηη κεηά ηελ Α[n-1] αθνινπζεί ε Α[0]. A[n-2] A[n-1] A[0] A[1]... Έηζη κεηά από κηα αθνινπζία εηζαγσγώλ θαη εμαγσγώλ ε νπξά καο πηζαλόλ λα έρεη ηελ πην θάησ κνξθή όπνπ ζεσξνύκε όηη η απσή ηηρ οςπάρ βπίζκεηαι ζηη θέζη k θαη ην ηέινο ηεο νπξάο ζηε ζέζε 4. k ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 8-17