Στοίβα, Ουρά.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Βασικές έννοιες αλγορίθμων
Advertisements

3.4 Στοίβα (stack) (μόνο θεωρία)
Συλλογές, Στοίβες και Ουρές Σε πολλές εφαρμογές μας αρκεί η αναπαράσταση ενός δυναμικού συνόλου με μια δομή δεδομένων η οποία δεν υποστηρίζει την αναζήτηση.
Παράδειγμα 3: Δίνονται Ν αριθμοί Xj,j=1,2,…N.Να αναπτυχθεί αλγόριθμος που θα βρίσκει το μεγαλύτερο αριθμό και τις θέσεις στις οποίες εμφανίζεται αυτός.
-Στοίβα-Ουρά - Πλεονεκτήματα πινάκων -Δομές δεδομένων δευτερεύουσας μνήμης -Πληροφορική και δεδομένα -Παραδείγματα-Προβλήματα ψευδοκώδικα.
Αντισταθμιστική ανάλυση Κατά τη διάρκεια εκτέλεσης του Α η Δ πραγματοποιεί μία ακολουθία από πράξεις. Θεωρήστε έναν αλγόριθμο Α που χρησιμοποιεί μια δομή.
Ανασκόπηση σε Δείκτες, Ουρές, Στοίβες, Συνδεδεμένες Λίστες
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι
Γλώσσα C & Unix Τμήμα Πληροφορικής, ΑΠΘ B’ εξάμηνο
ΣΤΟΙΧΕΙΑ ΨΕΥΔΟΚΩΔΙΚΑ ΒΑΣΙΚΕΣ ΔΟΜΕΣ ΒΑΣΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΠΙΝΑΚΩΝ
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Δυναμικός Κατακερματισμός.
Στοίβα & Ουρά Πέμπτη 08/03/2007 Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Τμήμα: Γ3τεχν. Καθηγητής :Ν. Γιαννακόπουλος ΠΕ19 Ερωτήσεις:
Δ Η Μ Η Τ Ρ Η Σ Ε Υ Σ Τ Α Θ Ι Α Δ Η Σ Τ Α Ξ Η : ΑΤ’1
Ενότητα Η Δομή Επανάληψης
Γραφήματα & Επίπεδα Γραφήματα
Κοντινότεροι Κοινοί Πρόγονοι α βγ θ δεζ η π ν ι κλμ ρσ τ κκπ(λ,ι)=α, κκπ(τ,σ)=ν, κκπ(λ,π)=η κκπ(π,σ)=γ, κκπ(ξ,ο)=κ ξο κκπ(ι,ξ)=β, κκπ(τ,θ)=θ, κκπ(ο,μ)=α.
Αλγόριθμοι CSPs – Κώδικας Μάθημα Τεχνητής Νοημοσύνης ΥΣ02 Χειμερινό εξάμηνο
Σε κάθε φοιτητή του Πολυτεχνείου εξηγείται στην αρχή των σπουδών του, να μην απεικονίζει το άθροισμα δύο μεγεθών, όπως π.χ. το με τον παραπάνω τρόπο. Αυτός.
2ο Λύκειο Αγίας Βαρβάρας Γωνιακή επιτάχυνση.
Διδάσκων: Παύλος Παυλικκάς1 Ολυμπιάδα Πληροφορικής Stacks - Στοίβες.
Μάθημα 1. Άσκηση 1 Συμπλήρωσε ή διέγραψε αντικείμενα, για να υπάρχουν ακριβώς όσα δείχνει και ο αριθμός.
Ισορροπημένα Δένδρα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Μπορούμε να επιτύχουμε χρόνο εκτέλεσης για.
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 12 Ιανουαρίου 2015Δευτέρα, 12 Ιανουαρίου 2015Δευτέρα, 12 Ιανουαρίου 2015Δευτέρα, 12 Ιανουαρίου.
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ 2: ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Η/Υ
Ε. ΠετράκηςΣτοίβες, Ουρές1 Στοίβες  Στοίβα: περιορισμένη ποικιλία λίστας  τα στοιχεία μπορούν να εισαχθούν ή να διαγραφούν μόνο από μια άκρη : λίστες.
Αλγόριθμοι συνέχεια 2.2.4, 2.2.5,
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ
Lists– Λίστες 1. Αυτό-αναφορικές δομές Τα μέλη μίας δομής μπορεί να είναι οποιουδήποτε τύπου, ακόμα και δείκτες σε δομές του ίδιου τύπου. Χρησιμοποιώντας.
ΕΠΛ 223 Θεωρία και Πρακτική Μεταγλωττιστών7-1 Πίνακας Συμβόλων Πίνακας συμβόλων: δομή δεδομένων που χρησιμοποιείται για την αποθήκευση διαφόρων πληροφοριών.
Αναζήτηση – Δέντρα (2 ο Μέρος) Advanced Data Indexing (Προηγμένη ευρετηρίαση δεδομένων)
Δομές Αναζήτησης TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες:
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ 2: ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Η/Υ
Διερεύνηση γραφήματος. Ένας αλγόριθμος διερεύνησης γραφήματος επισκέπτεται τους κόμβους του γραφήματος με μια καθορισμένη στρατηγική, π.χ. κατά εύρος.
Αναζήτηση Κατά Βάθος Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο.
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ §3.7 ΤΑΞΙΝΟΜΗΣΗ
1 ΤΜΗΜΑ ΜΠΕΣ Αλγόριθμοι Αναζήτησης Εργασία 1 Τυφλή Αναζήτηση.
Δομές Δεδομένων και Αρχεία Ενότητα 7: Η δομή Στοίβα Ηλίας Κ. Σάββας, Αναπληρωτής Καθηγητής, Τμήμα Μηχανικών Πληροφορικής Τ.Ε., T.E.I. Θεσσαλίας.
Δομές Δεδομένων και Αρχεία Ενότητα 10: Κυκλικά και Διπλά Συνδεδεμένη Λίστα Ηλίας Κ. Σάββας, Αναπληρωτής Καθηγητής, Τμήμα Μηχανικών Πληροφορικής Τ.Ε., T.E.I.
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
Κεφάλαιο 3ο Δομές Δεδομένων.
Τα υπέρ και τα κατά Stomikrocosmotistaxismas.blogspot.gr.
ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ ΟΣΟ ΣΥΝΘΗΚΗ ΕΠΑΝΑΛΑΒΕ ΕΝΤΟΛΕΣ ΕΝΤΟΛΕΣΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ.
Για μτ από ατ μέχρι ττ [με_βήμα β] εντολές Τέλος_επανάληψης : περιοχή εντολών μτ : η μεταβλητή της οποίας η τιμή θα περάσει από την αρχική.
ΤΕΙ ΚΕΝΤΡΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΣΕΡΡΕΣ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Τ.Ε. Πτυχιακή εργασία Μάρθα Τσολακίδου.
Γράφημα Συνδυαστικό αντικείμενο που αποτελείται από 2 σύνολα:
Οι Δομές Δεδομένων Ουρά και Στοίβα
Δυναμικός Κατακερματισμός
ΑΛΓΟΡΙΘΜΟΣ ΠΡΟΒΛΗΜΑ ΑΛΓΟΡΙΘΜΟΣ ΛΥΣΗ
Διδάσκων: Δρ. Τσίντζα Παναγιώτα
ΔΟΜΗ ΑΠΛΗΣ ΕΠΙΛΟΓΗΣ ΑΝ συνθήκη_ισχύει ΤΟΤΕ εντολές ΤΕΛΟΣ_ΑΝ
Άσκηση 2-Περιγραφικής Στατιστικής
Πρώτο μάθημα στα εφηρμοσμένα
ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ «ΓΙΑ» Για μτ από ατ μέχρι ττ [με_βήμα β] εντολές Τέλος_επανάληψης : περιοχή εντολών μτ : η μεταβλητή της.
ΓΕΜΙΣΜΑ ΜΟΝΟΔΙΑΣΤΑΤΟΥ ΠΙΝΑΚΑ (Άσκηση 1)
Μανασσάκης Βασίλης Καθηγητής Πληροφορικής
Αν συνθήκη_ισχύει τότε εντολές Τέλος_Αν
ΣΤΟΙΒΑ.
Εντολές και δομές αλγορίθμου
Οι Δομές Δεδομένων Ουρά και Στοίβα
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΑΕΠΠ
ΚΕΦΑΛΑΙΟ 3 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ
Πολυπλοκότητα Αλγορίθμων
για να σχηματίσω τη λέξη
Πρώτο μάθημα στα εφηρμοσμένα
Εξωτερική Αναζήτηση Ιεραρχία Μνήμης Υπολογιστή Εξωτερική Μνήμη
Δυναμικός Κατακερματισμός
Μανασσάκης Βασίλης Καθηγητής Πληροφορικής
ΠΙΝΑΚΕΣ Δομή ΟΥΡΑΣ (queue)
Μεταγράφημα παρουσίασης:

Στοίβα, Ουρά

Στοίβα (Stack) Τα δεδομένα που βρίσκονται στην κορυφή της στοίβας λαμβάνονται πρώτα, ενώ αυτά που βρίσκονται στον πάτο της στοίβας λαμβάνονται τελευταία Τελευταίο Μέσα Πρώτο Έξω Last In First Out

Βασικές λειτουργίες στοίβας Ώθηση (Push) Βάζουμε ένα στοιχείο στην κορυφή της στοίβας Κίνδυνος υπερχείλισης (overflow) Απώθηση (Pop) Βγάζουμε ένα στοιχείο από τη στοίβα Κίνδυνος υποχείλισης (underflow)

Υλοποίηση στοίβας με πίνακα Η στοίβα υλοποιείται με μονοδιάστατο πίνακα Χρησιμοποιούμε μια βοηθητική μεταβλητή top που δείχνει την κορυφή της στοίβας Για την ώθηση αυξάνουμε την top κατά ένα και προσθέτουμε το νέο στοιχείο σ’ αυτή τη θέση Για τη απώθηση, προσπελαύνουμε το στοιχείο που δείχνει η top και μετά μειώνουμε την top κατά ένα. Στοίβα top

Παράδειγμα στοίβας Να παρουσιαστεί η μορφή της στοίβας μετά την εκτέλεση των παρακάτω λειτουργιών Ώθηση του 8 Απώθηση Ώθηση του -9 Ώθηση του 10 10 8 -9 -2 top 23 7

Αλγόριθμος Ώθησης Αλγόριθμος Ώθηση Δεδομένα //ΣΤΟΙΒΑ, Ν, κορυφή, στοιχείο// Αν κορυφή < Ν τότε κορυφή ← κορυφή+1 ΣΤΟΙΒΑ[κορυφή] ← στοιχείο υπερχείλιση ← ψευδής Αλλιώς υπερχείλιση ← αληθής Τέλος_αν Αποτελέσματα //ΣΤΟΙΒΑ, κορυφή, υπερχείλιση// Τέλος Ώθηση

Αλγόριθμος Απώθησης Αλγόριθμος Απώθηση Δεδομένα //ΣΤΟΙΒΑ, κορυφή// Αν κορυφή ≥ 1 τότε στοιχείο ← ΣΤΟΙΒΑ[κορυφή] κορυφή ← κορυφή-1 υποχείλιση ← ψευδής Αλλιώς υποχείλιση ← αληθής Τέλος_αν Αποτελέσματα //ΣΤΟΙΒΑ, κορυφή, υποχείλιση, στοιχείο// Τέλος Ώθηση

Ουρά (Queue) Επεξεργαζόμαστε τα δεδομένα που είναι αποθηκευμένα σε μια ουρά με τη σειρά που αποθηκεύτηκαν Πρώτο Μέσα, Πρώτο Έξω First In First Out Επειδή οι ουρές είναι συχνό φαινόμενο υπάρχει ένας ιδιαίτερος κλάδος των μαθηματικών και της πληροφορικής που τις μελετά: Η Επιχειρησιακή Έρευνα και ειδικότερα η Θεωρία Ουρών

Βασικές λειτουργίες ουράς Εισαγωγή (enqueue) στοιχείου στην ουρά Ένα καινούριο στοιχείο προστίθεται στο τέλος της ουράς Εξαγωγή (dequeue) στοιχείου από την ουρά Ένα υπάρχον στοιχείο αφαιρείται από την αρχή της ουράς

Υλοποίηση ουράς με πίνακα Η ουρά υλοποιείται με μονοδιάστατο πίνακα Χρησιμοποιούμε δύο βοηθητικές μεταβλητές, μία front, που δηλώνει την αρχή της ουράς, και μία rear, που δηλώνει το τέλος της ουράς Για την εισαγωγή νέου στοιχείου αυξάνουμε τη rear κατά ένα και σ’ αυτή τη θέση βάζουμε το καινούριο στοιχείο Κίνδυνος η ουρά να είναι γεμάτη Για την εξαγωγή ενός στοιχείου, προσπελαύνουμε τη θέση που δείχνει η front, και μετά την επεξεργασία αυξάνουμε τη front κατά ένα Ελέγχουμε μήπως η ουρά είναι ήδη άδεια front rear

Παράδειγμα ουράς Σε μια ουρά 10 θέσεων έχουν τοποθετηθεί διαδοχικά τα στοιχεία Μ, Κ, Δ, Α, Σ, στην 1η, 2η, 3η, 4η και 5η θέση αντίστοιχα Να προσδιοριστούν οι τιμές των δεικτών της παραπάνω ουράς Στη συνέχεια να αφαιρεθεί ένα στοιχείο από την ουρά. Ποιος δείκτης μεταβάλλεται και ποια η νέα του τιμή; Τέλος, να τοποθετηθεί το στοιχείο Λ στην ουρά. Ποιος δείκτης μεταβάλλεται και ποια η νέα του τιμή; Μ Κ Δ Α Σ Front = 1 Rear = 5

Παράδειγμα ουράς Σε μια ουρά 10 θέσεων έχουν τοποθετηθεί διαδοχικά τα στοιχεία Μ, Κ, Δ, Α, Σ, στην 1η, 2η, 3η, 4η και 5η θέση αντίστοιχα Να προσδιοριστούν οι τιμές των δεικτών της παραπάνω ουράς Στη συνέχεια να αφαιρεθεί ένα στοιχείο από την ουρά. Ποιος δείκτης μεταβάλλεται και ποια η νέα του τιμή; Τέλος, να τοποθετηθεί το στοιχείο Λ στην ουρά. Ποιος δείκτης μεταβάλλεται και ποια η νέα του τιμή; Μ Κ Δ Α Σ Front = 1 Front = 2 Rear = 5

Παράδειγμα ουράς Σε μια ουρά 10 θέσεων έχουν τοποθετηθεί διαδοχικά τα στοιχεία Μ, Κ, Δ, Α, Σ, στην 1η, 2η, 3η, 4η και 5η θέση αντίστοιχα Να προσδιοριστούν οι τιμές των δεικτών της παραπάνω ουράς Στη συνέχεια να αφαιρεθεί ένα στοιχείο από την ουρά. Ποιος δείκτης μεταβάλλεται και ποια η νέα του τιμή; Τέλος, να τοποθετηθεί το στοιχείο Λ στην ουρά. Ποιος δείκτης μεταβάλλεται και ποια η νέα του τιμή; Κ Δ Α Σ Λ Front = 2 Rear = 5 Rear = 6

Εισαγωγή σε Ουρά Αλγόριθμος Εισαγωγή Δεδομένα //ΟΥΡΑ, Ν, πίσω, στοιχείο// Αν πίσω < Ν τότε πίσω ← πίσω+1 ΟΥΡΑ[πίσω] ← στοιχείο έγινε ← αληθής Αλλιώς έγινε ← ψευδής Τέλος_αν Αποτελέσματα //ΟΥΡΑ, πίσω, έγινε// Τέλος Εισαγωγή

Εξαγωγή από Ουρά Αλγόριθμος Εξαγωγή Δεδομένα //ΟΥΡΑ, εμπρός, πίσω// Αν πίσω ≤ εμπρός τότε στοιχείο ← ΟΥΡΑ[εμπρός] εμπρός ← εμπρός+1 έγινε ← αληθής Αλλιώς έγινε ← ψευδής Τέλος_αν Αποτελέσματα //ΟΥΡΑ, εμπρός, στοιχείο, έγινε// Τέλος Εξαγωγή

Κυκλική ουρά Η ουρά έχει μέγεθος 12 Έστω ότι εμπρός = 3 και, πίσω = 11 Σε μία συμβατική ουρά θα μπορούσαμε να προσθέσουμε μόνο ένα επιπλέον στοιχείο Β Δ Θ Κ Ω Χ Ζ Σ Ξ εμπρός πίσω 1 12

Κυκλική ουρά Σε μία κυκλική ουρά όμως, μπορούμε να εκμεταλλευτούμε όλες τις κενές θέσεις Προσθέτουμε διαδοχικά Το Μ Το Λ Το Ε Τώρα η ουρά είναι πραγματικά γεμάτη εμπρός πίσω Ζ Β Ε Δ πίσω 1 Λ Θ πίσω Μ Κ 12 Χ Ω Σ Ξ πίσω

Κυκλική ουρά Κάθε φορά που επεξεργαζόμαστε ένα στοιχείο και το αφαιρούμε απ’ την ουρά δημιουργούνται κενές θέσεις που μπορούμε να εκμεταλλευτούμε Η ουρά είναι πραγματικά γεμάτη όταν έχει 12 στοιχεία προς επεξεργασία εμπρός εμπρός πίσω πίσω εμπρός πίσω πίσω Ζ Β Ε Δ εμπρός Λ Θ Μ Κ Χ Ω Σ Ξ

Εισαγωγή σε Κυκλική Ουρά Αλγόριθμος Εισαγωγή Δεδομένα //ΟΥΡΑ, Ν, εμπρός, πίσω, στοιχείο// Αν (πίσω mod Ν)+1 = εμπρός τότε έγινε ← ψευδής Αλλιώς πίσω ← (πίσω mod Ν)+1 ΟΥΡΑ[πίσω] ← στοιχείο έγινε ← αληθής Τέλος_αν Αποτελέσματα //ΟΥΡΑ, πίσω, έγινε// Τέλος Εισαγωγή

Εξαγωγή από Κυκλική Ουρά Αλγόριθμος Εξαγωγή Δεδομένα //ΟΥΡΑ, Ν, εμπρός, πίσω// Αν πίσω = εμπρός τότε έγινε ← ψευδής Αλλιώς στοιχείο ← ΟΥΡΑ[εμπρός] εμπρός ← (εμπρός mod Ν)+1 έγινε ← αληθής Τέλος_αν Αποτελέσματα //ΟΥΡΑ, πίσω, έγινε, στοιχείο // Τέλος Εξαγωγή