ΑΕΠΠ - Μάθημα 26

72

description

3.4 Στοίβα 3.5 Ουρά

Transcript of ΑΕΠΠ - Μάθημα 26

Page 1: ΑΕΠΠ - Μάθημα 26
Page 2: ΑΕΠΠ - Μάθημα 26

Στοίβα

Page 3: ΑΕΠΠ - Μάθημα 26

Στοίβα

Κάθε νέο πιάτο μπαίνει στην κορφή.

Page 4: ΑΕΠΠ - Μάθημα 26

Στοίβα

Κάθε νέο πιάτο μπαίνει στην κορφή.

Κάθε πιάτο που βγάζουμε, το παίρνουμε από την κορυφή.

Page 5: ΑΕΠΠ - Μάθημα 26

Στοίβα

Κάθε νέο πιάτο μπαίνει στην κορφή.

Κάθε πιάτο που βγάζουμε, το παίρνουμε από την κορυφή.

Last In First Out (LIFO)

Page 6: ΑΕΠΠ - Μάθημα 26

Στοίβα

Κάθε νέο στοιχείο μπαίνει στην κορφή.

Κάθε στοιχείο που βγάζουμε, το παίρνουμε από την κορυφή.

Last In First Out (LIFO)

Page 7: ΑΕΠΠ - Μάθημα 26

ΏθησηΓια να προσθέσω στοιχεία σε μια στοίβα χρησιμοποιώ την λειτουργία της Ώθησης (push)

Page 8: ΑΕΠΠ - Μάθημα 26

Ώθηση

45

Για να προσθέσω στοιχεία σε μια στοίβα χρησιμοποιώ την λειτουργία της Ώθησης (push)

Push(45)

Page 9: ΑΕΠΠ - Μάθημα 26

Ώθηση

045

Για να προσθέσω στοιχεία σε μια στοίβα χρησιμοποιώ την λειτουργία της Ώθησης (push)

Push(45)Push(0)

Page 10: ΑΕΠΠ - Μάθημα 26

Ώθηση

140

45

Για να προσθέσω στοιχεία σε μια στοίβα χρησιμοποιώ την λειτουργία της Ώθησης (push)

Push(45)Push(0)Push(14)

Page 11: ΑΕΠΠ - Μάθημα 26

Ώθηση

20140

45

Για να προσθέσω στοιχεία σε μια στοίβα χρησιμοποιώ την λειτουργία της Ώθησης (push)

Push(45)Push(0)Push(14)Push(20)

Page 12: ΑΕΠΠ - Μάθημα 26

Ώθηση

-5 0

44 520140

45

Για να προσθέσω στοιχεία σε μια στοίβα χρησιμοποιώ την λειτουργία της Ώθησης (push)

Push(45)Push(0)Push(14)Push(20)Push(5)Push(44)Push(0)Push(-5)

Page 13: ΑΕΠΠ - Μάθημα 26

Ώθηση

-5 0

44 520140

45

Για να προσθέσω στοιχεία σε μια στοίβα χρησιμοποιώ την λειτουργία της Ώθησης (push)

Push(45)Push(0)Push(14)Push(20)Push(5)Push(44)Push(0)Push(-5)Push(10) Δεν γίνεται! Υπερχείλιση

Page 14: ΑΕΠΠ - Μάθημα 26

Ώθηση

-5 0

44 520140

45

Για να προσθέσω στοιχεία σε μια στοίβα χρησιμοποιώ την λειτουργία της Ώθησης (push)

Push(45)Push(0)Push(14)Push(20)Push(5)Push(44)Push(0)Push(-5)Push(10) Δεν γίνεται! Υπερχείλιση

Κάθε φορά που κάνω ώθηση πρέπει να ελέγχω μην συμβεί υπερχείλιση της στοίβας!

Page 15: ΑΕΠΠ - Μάθημα 26

Απώθηση

-5 0

44 520140

45

Για να αφαιρέσω στοιχεία από μια στοίβα χρησιμοποιώ την λειτουργία της Απώθησης (pop)

Page 16: ΑΕΠΠ - Μάθημα 26

Απώθηση

0

44 520140

45

Για να αφαιρέσω στοιχεία από μια στοίβα χρησιμοποιώ την λειτουργία της Απώθησης (pop)

Pop – Θα δώσει -5

Page 17: ΑΕΠΠ - Μάθημα 26

Απώθηση

44 520140

45

Για να αφαιρέσω στοιχεία από μια στοίβα χρησιμοποιώ την λειτουργία της Απώθησης (pop)

Pop – Θα δώσει -5Pop – Θα δώσει 0

Page 18: ΑΕΠΠ - Μάθημα 26

Απώθηση

520140

45

Για να αφαιρέσω στοιχεία από μια στοίβα χρησιμοποιώ την λειτουργία της Απώθησης (pop)

Pop – Θα δώσει -5Pop – Θα δώσει 0Pop – Θα δώσει 44

Page 19: ΑΕΠΠ - Μάθημα 26

Απώθηση

Για να αφαιρέσω στοιχεία από μια στοίβα χρησιμοποιώ την λειτουργία της Απώθησης (pop)

Pop – Θα δώσει -5Pop – Θα δώσει 0Pop – Θα δώσει 44Pop – Θα δώσει 5Pop – Θα δώσει 20Pop – Θα δώσει 14Pop – Θα δώσει 0Pop – Θα δώσει 45

Page 20: ΑΕΠΠ - Μάθημα 26

Απώθηση

Για να αφαιρέσω στοιχεία από μια στοίβα χρησιμοποιώ την λειτουργία της Απώθησης (pop)

Pop – Θα δώσει -5Pop – Θα δώσει 0Pop – Θα δώσει 44Pop – Θα δώσει 5Pop – Θα δώσει 20Pop – Θα δώσει 14Pop – Θα δώσει 0Pop – Θα δώσει 45Pop – Δεν μπορεί να γίνει! Υποχείλιση!

Page 21: ΑΕΠΠ - Μάθημα 26

Απώθηση

Για να αφαιρέσω στοιχεία από μια στοίβα χρησιμοποιώ την λειτουργία της Απώθησης (pop)

Pop – Θα δώσει -5Pop – Θα δώσει 0Pop – Θα δώσει 44Pop – Θα δώσει 5Pop – Θα δώσει 20Pop – Θα δώσει 14Pop – Θα δώσει 0Pop – Θα δώσει 45Pop – Δεν μπορεί να γίνει! Υποχείλιση!

Κάθε φορά που κάνω απώθηση πρέπει να ελέγχω μην συμβεί υποχείλιση της στοίβας!

Page 22: ΑΕΠΠ - Μάθημα 26

Στην παρακάτω στοίβα εκτελώ τις εξής λειτουργίες με την σειρά που αναφέρονται:Push(1), Push(0), Pop, Push(2), Pop, Pop

Με ποια σειρά θα απωθηθούν τα στοιχεία;

Page 23: ΑΕΠΠ - Μάθημα 26

1

Στην παρακάτω στοίβα εκτελώ τις εξής λειτουργίες με την σειρά που αναφέρονται:Push(1), Push(0), Pop, Push(2), Pop, Pop

Με ποια σειρά θα απωθηθούν τα στοιχεία;

Push(1)

Page 24: ΑΕΠΠ - Μάθημα 26

0

1

Στην παρακάτω στοίβα εκτελώ τις εξής λειτουργίες με την σειρά που αναφέρονται:Push(1), Push(0), Pop, Push(2), Pop, Pop

Με ποια σειρά θα απωθηθούν τα στοιχεία;

Push(1)Push(0)

Page 25: ΑΕΠΠ - Μάθημα 26

1

Στην παρακάτω στοίβα εκτελώ τις εξής λειτουργίες με την σειρά που αναφέρονται:Push(1), Push(0), Pop, Push(2), Pop, Pop

Με ποια σειρά θα απωθηθούν τα στοιχεία;

Push(1)Push(0)Pop – Θα εξαχθεί το 0

Page 26: ΑΕΠΠ - Μάθημα 26

2

1

Στην παρακάτω στοίβα εκτελώ τις εξής λειτουργίες με την σειρά που αναφέρονται:Push(1), Push(0), Pop, Push(2), Pop, Pop

Με ποια σειρά θα απωθηθούν τα στοιχεία;

Push(1)Push(0)Pop – Θα εξαχθεί το 0Push(2)

Page 27: ΑΕΠΠ - Μάθημα 26

1

Στην παρακάτω στοίβα εκτελώ τις εξής λειτουργίες με την σειρά που αναφέρονται:Push(1), Push(0), Pop, Push(2), Pop, Pop

Με ποια σειρά θα απωθηθούν τα στοιχεία;

Push(1)Push(0)Pop – Θα εξαχθεί το 0Push(2)Pop – Θα εξαχθεί το 2

Page 28: ΑΕΠΠ - Μάθημα 26

Στην παρακάτω στοίβα εκτελώ τις εξής λειτουργίες με την σειρά που αναφέρονται:Push(1), Push(0), Pop, Push(2), Pop, Pop

Με ποια σειρά θα απωθηθούν τα στοιχεία;

Push(1)Push(0)Pop – Θα εξαχθεί το 0Push(2)Pop – Θα εξαχθεί το 2Pop – Θα εξαχθεί το 1

Page 29: ΑΕΠΠ - Μάθημα 26

Στην παρακάτω στοίβα εκτελώ τις εξής λειτουργίες με την σειρά που αναφέρονται:Push(1), Push(0), Pop, Push(2), Pop, Pop

Με ποια σειρά θα απωθηθούν τα στοιχεία;

Push(1)Push(0)Pop – Θα εξαχθεί το 0Push(2)Pop – Θα εξαχθεί το 2Pop – Θα εξαχθεί το 1

0, 2, 1

Page 30: ΑΕΠΠ - Μάθημα 26

Υλοποίηση Στοίβας με πίνακα

Page 31: ΑΕΠΠ - Μάθημα 26

Υλοποίηση Στοίβας με πίνακα

11

55

24

Πίνακας Σ5

4

3

2

1

Χρειάζομαι ένα μονοδιάστατο πίνακα όπου θα αποθηκεύονται τα στοιχεία της στοίβας.

Page 32: ΑΕΠΠ - Μάθημα 26

Υλοποίηση Στοίβας με πίνακα

11

55

24

Πίνακας Σ5

4

3

2

1

top

Χρειάζομαι ένα μονοδιάστατο πίνακα όπου θα αποθηκεύονται τα στοιχεία της στοίβας.

Επίσης χρειάζομαι μια μεταβλητή η οποία να δείχνει την θέση του τελευταίου στοιχείου της στοίβας (top)

Page 33: ΑΕΠΠ - Μάθημα 26

Αλγόριθμος Ώθησης

11

55

24

Πίνακας Σ5

4

3

2

1

top

●Διαβάζω το νέο στοιχείο που θα προστεθεί.

Αλγόριθμος Ώθηση Διάβασε στοιχείο

Page 34: ΑΕΠΠ - Μάθημα 26

Αλγόριθμος Ώθησης

11

55

24

Πίνακας Σ5

4

3

2

1

top

●Διαβάζω το νέο στοιχείο που θα προστεθεί.●Ελέγχω αν το νέο στοιχείο χωράει στη στοίβα, δηλαδή αν το top είναι μικρότερο από τον μέγιστο αριθμό στοιχείων που χωράει

Αλγόριθμος Ώθηση Διάβασε στοιχείο Αν top < 5 τότε

Page 35: ΑΕΠΠ - Μάθημα 26

Αλγόριθμος Ώθησης

11

55

24

Πίνακας Σ5

4

3

2

1

top

●Διαβάζω το νέο στοιχείο που θα προστεθεί.●Ελέγχω αν το νέο στοιχείο χωράει στη στοίβα, δηλαδή αν το top είναι μικρότερο από τον μέγιστο αριθμό στοιχείων που χωράει●Αν χωράει, αυξάνω το top κατά ένα και τοποθετώ στη νέα κορυφή το στοιχείο

Αλγόριθμος Ώθηση Διάβασε στοιχείο Αν top < 5 τότε top ← top + 1 Σ[top] ← στοιχείο

Page 36: ΑΕΠΠ - Μάθημα 26

Αλγόριθμος Ώθησης

11

55

24

Πίνακας Σ5

4

3

2

1

top

●Διαβάζω το νέο στοιχείο που θα προστεθεί.●Ελέγχω αν το νέο στοιχείο χωράει στη στοίβα, δηλαδή αν το top είναι μικρότερο από τον μέγιστο αριθμό στοιχείων που χωράει●Αν χωράει, αυξάνω το top κατά ένα και τοποθετώ στη νέα κορυφή το στοιχείο●Αν δεν χωράει έχω υπερχείλιση και δεν μπορώ να προσθέσω το στοιχείο

Αλγόριθμος Ώθηση Διάβασε στοιχείο Αν top < 5 τότε top ← top + 1 Σ[top] ← στοιχείο Αλλιώς Εμφάνισε “Υπερχείλιση στοίβας” Τέλος_ανΤέλος Ώθηση

Page 37: ΑΕΠΠ - Μάθημα 26

Αλγόριθμος Απώθησης

11

55

24

Πίνακας Σ5

4

3

2

1

top

●Ελέγχω αν υπάρχει τουλάχιστον ένα στοιχείο στη στοίβα μου, δηλαδή αν το top>=1.

Αλγόριθμος Απώθηση Αν top >= 1 τότε

Page 38: ΑΕΠΠ - Μάθημα 26

Αλγόριθμος Απώθησης

11

55

24

Πίνακας Σ5

4

3

2

1

top

●Ελέγχω αν υπάρχει τουλάχιστον ένα στοιχείο στη στοίβα μου, δηλαδή αν το top>=1.●Αν έχω τουλάχιστον ένα στοιχείο, εμφανίζω το στοιχείο που βρίσκεται στην κορυφή, δηλαδή το Σ[top] και μετά μειώνω την κορυφή κατά ένα.

Αλγόριθμος Απώθηση Αν top >= 1 τότε Εμφάνισε Σ[top] top ← top - 1

Page 39: ΑΕΠΠ - Μάθημα 26

Αλγόριθμος Απώθησης

11

55

24

Πίνακας Σ5

4

3

2

1

top

●Ελέγχω αν υπάρχει τουλάχιστον ένα στοιχείο στη στοίβα μου, δηλαδή αν το top>=1.●Αν έχω τουλάχιστον ένα στοιχείο, εμφανίζω το στοιχείο που βρίσκεται στην κορυφή, δηλαδή το Σ[top] και μετά μειώνω την κορυφή κατά ένα.●Αν δεν έχω κανένα στοιχείο προφανώς δεν μπορώ να κάνω απώθηση και έχω υποχείλιση.

Αλγόριθμος Απώθηση Αν top >= 1 τότε Εμφάνισε Σ[top] top ← top - 1 Αλλιώς Εμφάνισε “Υποχείλιση στοίβας” Τέλος_ανΤέλος Απώθηση

Page 40: ΑΕΠΠ - Μάθημα 26

Ουρά

Κάθε ένας που έρχεται μπαίνει στο τέλος.

Κάθε ένας που εξυπηρετείται φεύγει από την αρχή.

First In First Out (FIFO)

Page 41: ΑΕΠΠ - Μάθημα 26

Ουρά

Κάθε νέο στοιχείο μπαίνει στο τέλος.

Κάθε στοιχείο που βγαίνει φεύγει από την αρχή.

First In First Out (FIFO)

Page 42: ΑΕΠΠ - Μάθημα 26

ΕισαγωγήΓια να προσθέσω στοιχεία σε μια ουρά χρησιμοποιώ την λειτουργία της εισαγωγής (enqueue)

Page 43: ΑΕΠΠ - Μάθημα 26

Εισαγωγή

20

Για να προσθέσω στοιχεία σε μια ουρά χρησιμοποιώ την λειτουργία της εισαγωγής (enqueue)

Εισαγωγή(20)

Page 44: ΑΕΠΠ - Μάθημα 26

Εισαγωγή

20 3

Για να προσθέσω στοιχεία σε μια ουρά χρησιμοποιώ την λειτουργία της εισαγωγής (enqueue)

Εισαγωγή(20)Εισαγωγή(3)

Page 45: ΑΕΠΠ - Μάθημα 26

Εισαγωγή

20 3 2

Για να προσθέσω στοιχεία σε μια ουρά χρησιμοποιώ την λειτουργία της εισαγωγής (enqueue)

Εισαγωγή(20)Εισαγωγή(3)Εισαγωγή(2)

Page 46: ΑΕΠΠ - Μάθημα 26

Εισαγωγή

20 3 2 0 33

Για να προσθέσω στοιχεία σε μια ουρά χρησιμοποιώ την λειτουργία της εισαγωγής (enqueue)

Εισαγωγή(20)Εισαγωγή(3)Εισαγωγή(2)Εισαγωγή(0)Εισαγωγή(33)

Page 47: ΑΕΠΠ - Μάθημα 26

Εισαγωγή

20 3 2 0 33

Για να προσθέσω στοιχεία σε μια ουρά χρησιμοποιώ την λειτουργία της εισαγωγής (enqueue)

Εισαγωγή(20)Εισαγωγή(3)Εισαγωγή(2)Εισαγωγή(0)Εισαγωγή(33)Εισαγωγή(5) Δεν γίνεται! Γεμάτη ουρά

Page 48: ΑΕΠΠ - Μάθημα 26

Εισαγωγή

20 3 2 0 33

Για να προσθέσω στοιχεία σε μια ουρά χρησιμοποιώ την λειτουργία της εισαγωγής (enqueue)

Εισαγωγή(20)Εισαγωγή(3)Εισαγωγή(2)Εισαγωγή(0)Εισαγωγή(33)Εισαγωγή(5) Δεν γίνεται! Γεμάτη ουρά

Κάθε φορά που κάνω εισαγωγή πρέπει να ελέγχω αν έχει κενές θέσεις στην ουρά

Page 49: ΑΕΠΠ - Μάθημα 26

Εξαγωγή

20 3 2 0 33

Για να αφαιρέσω στοιχεία από μια ουρά χρησιμοποιώ την λειτουργία της εξαγωγής (dequeue)

Page 50: ΑΕΠΠ - Μάθημα 26

Εξαγωγή

3 2 0 33

Για να αφαιρέσω στοιχεία από μια ουρά χρησιμοποιώ την λειτουργία της εξαγωγής (dequeue)

Εξαγωγή – θα δώσει 20

Page 51: ΑΕΠΠ - Μάθημα 26

Εξαγωγή

2 0 33

Για να αφαιρέσω στοιχεία από μια ουρά χρησιμοποιώ την λειτουργία της εξαγωγής (dequeue)

Εξαγωγή – θα δώσει 20Εξαγωγή – θα δώσει 3

Page 52: ΑΕΠΠ - Μάθημα 26

Εξαγωγή

0 33

Για να αφαιρέσω στοιχεία από μια ουρά χρησιμοποιώ την λειτουργία της εξαγωγής (dequeue)

Εξαγωγή – θα δώσει 20Εξαγωγή – θα δώσει 3Εξαγωγή – θα δώσει 2

Page 53: ΑΕΠΠ - Μάθημα 26

ΕξαγωγήΓια να αφαιρέσω στοιχεία από μια ουρά χρησιμοποιώ την λειτουργία της εξαγωγής (dequeue)

Εξαγωγή – θα δώσει 20Εξαγωγή – θα δώσει 3Εξαγωγή – θα δώσει 2Εξαγωγή – θα δώσει 0Εξαγωγή – θα δώσει 33

Page 54: ΑΕΠΠ - Μάθημα 26

ΕξαγωγήΓια να αφαιρέσω στοιχεία από μια ουρά χρησιμοποιώ την λειτουργία της εξαγωγής (dequeue)

Εξαγωγή – θα δώσει 20Εξαγωγή – θα δώσει 3Εξαγωγή – θα δώσει 2Εξαγωγή – θα δώσει 0Εξαγωγή – θα δώσει 33Εξαγωγή - Δεν γίνεται! Άδεια ουρά

Page 55: ΑΕΠΠ - Μάθημα 26

ΕξαγωγήΓια να αφαιρέσω στοιχεία από μια ουρά χρησιμοποιώ την λειτουργία της εξαγωγής (dequeue)

Εξαγωγή – θα δώσει 20Εξαγωγή – θα δώσει 3Εξαγωγή – θα δώσει 2Εξαγωγή – θα δώσει 0Εξαγωγή – θα δώσει 33Εξαγωγή - Δεν γίνεται! Άδεια ουρά

Κάθε φορά που κάνω εξαγωγή πρέπει να ελέγχω αν έχει στοιχεία στην ουρά

Page 56: ΑΕΠΠ - Μάθημα 26

Στη παρακάτω ουρά γίνονται οι εξής ενέργειες με την σειρά που αναφέρονται:Εισαγωγή(0), Εισαγωγή(21), Εξαγωγή, Εισαγωγή (4), Εξαγωγή

Ποια στοιχεία εξάγονται και ποια είναι η κατάσταση της ουράς μετά το τέλος των ενεργειών

Page 57: ΑΕΠΠ - Μάθημα 26

0

Στη παρακάτω ουρά γίνονται οι εξής ενέργειες με την σειρά που αναφέρονται:Εισαγωγή(0), Εισαγωγή(21), Εξαγωγή, Εισαγωγή (4), Εξαγωγή

Ποια στοιχεία εξάγονται και ποια είναι η κατάσταση της ουράς μετά το τέλος των ενεργειών

Εισαγωγή(0)

Page 58: ΑΕΠΠ - Μάθημα 26

0 21

Στη παρακάτω ουρά γίνονται οι εξής ενέργειες με την σειρά που αναφέρονται:Εισαγωγή(0), Εισαγωγή(21), Εξαγωγή, Εισαγωγή (4), Εξαγωγή

Ποια στοιχεία εξάγονται και ποια είναι η κατάσταση της ουράς μετά το τέλος των ενεργειών

Εισαγωγή(0)Εισαγωγή(21)

Page 59: ΑΕΠΠ - Μάθημα 26

21

Στη παρακάτω ουρά γίνονται οι εξής ενέργειες με την σειρά που αναφέρονται:Εισαγωγή(0), Εισαγωγή(21), Εξαγωγή, Εισαγωγή (4), Εξαγωγή

Ποια στοιχεία εξάγονται και ποια είναι η κατάσταση της ουράς μετά το τέλος των ενεργειών

Εισαγωγή(0)Εισαγωγή(21)Εξαγωγή – Θα δώσει 0

Page 60: ΑΕΠΠ - Μάθημα 26

21 4

Στη παρακάτω ουρά γίνονται οι εξής ενέργειες με την σειρά που αναφέρονται:Εισαγωγή(0), Εισαγωγή(21), Εξαγωγή, Εισαγωγή (4), Εξαγωγή

Ποια στοιχεία εξάγονται και ποια είναι η κατάσταση της ουράς μετά το τέλος των ενεργειών

Εισαγωγή(0)Εισαγωγή(21)Εξαγωγή – Θα δώσει 0Εισαγωγή(4)

Page 61: ΑΕΠΠ - Μάθημα 26

4

Στη παρακάτω ουρά γίνονται οι εξής ενέργειες με την σειρά που αναφέρονται:Εισαγωγή(0), Εισαγωγή(21), Εξαγωγή, Εισαγωγή (4), Εξαγωγή

Ποια στοιχεία εξάγονται και ποια είναι η κατάσταση της ουράς μετά το τέλος των ενεργειών

Εισαγωγή(0)Εισαγωγή(21)Εξαγωγή – Θα δώσει 0Εισαγωγή(4)Εξαγωγή – Θα δώσει 21

Page 62: ΑΕΠΠ - Μάθημα 26

4

Στη παρακάτω ουρά γίνονται οι εξής ενέργειες με την σειρά που αναφέρονται:Εισαγωγή(0), Εισαγωγή(21), Εξαγωγή, Εισαγωγή (4), Εξαγωγή

Ποια στοιχεία εξάγονται και ποια είναι η κατάσταση της ουράς μετά το τέλος των ενεργειών

Εισαγωγή(0)Εισαγωγή(21)Εξαγωγή – Θα δώσει 0Εισαγωγή(4)Εξαγωγή – Θα δώσει 21

0, 21

Page 63: ΑΕΠΠ - Μάθημα 26

Υλοποίηση ουράς με πίνακα

1 2 3 4 5

22 0 -5

Πίνακας Ο

Χρειάζομαι ένα μονοδιάστατο πίνακα όπου θα αποθηκεύονται τα στοιχεία της ουράς.

Page 64: ΑΕΠΠ - Μάθημα 26

Υλοποίηση ουράς με πίνακα

1 2 3 4 5

22 0 -5

Πίνακας Ο

front

Χρειάζομαι ένα μονοδιάστατο πίνακα όπου θα αποθηκεύονται τα στοιχεία της ουράς.

Επίσης χρειάζομαι 2 μεταβλητές οι οποίες να δείχνουν την θέση του πρώτου (front) και του τελευταίου στοιχείου της ουράς (rear)

rear

Page 65: ΑΕΠΠ - Μάθημα 26

Αλγόριθμος Εισαγωγής

●Διαβάζω το νέο στοιχείο που θα προστεθεί.Αλγόριθμος Εισαγωγή

Διάβασε στοιχείο

1 2 3 4 5

22 0 -5

Πίνακας Οfront rear

Page 66: ΑΕΠΠ - Μάθημα 26

Αλγόριθμος Εισαγωγής

●Διαβάζω το νέο στοιχείο που θα προστεθεί.●Ελέγχω αν το νέο στοιχείο χωράει στην ουρά

Αλγόριθμος Εισαγωγή Διάβασε στοιχείο Αν rear < 5 τότε

1 2 3 4 5

22 0 -5

Πίνακας Οfront rear

Page 67: ΑΕΠΠ - Μάθημα 26

Αλγόριθμος Εισαγωγής

●Διαβάζω το νέο στοιχείο που θα προστεθεί.●Ελέγχω αν το νέο στοιχείο χωράει στην ουρά●Αν χωράει, αυξάνω το rear κατά ένα και τοποθετώ στο τέλος το στοιχείο

Αλγόριθμος Εισαγωγή Διάβασε στοιχείο Αν rear < 5 τότε rear ← rear + 1 Ο[rear] ← στοιχείο

1 2 3 4 5

22 0 -5

Πίνακας Οfront rear

Page 68: ΑΕΠΠ - Μάθημα 26

Αλγόριθμος Εισαγωγής

●Διαβάζω το νέο στοιχείο που θα προστεθεί.●Ελέγχω αν το νέο στοιχείο χωράει στην ουρά●Αν χωράει, αυξάνω το rear κατά ένα και τοποθετώ στο τέλος το στοιχείο●Αν δεν χωράει δεν μπορώ να προσθέσω το στοιχείο

Αλγόριθμος Εισαγωγή Διάβασε στοιχείο Αν rear < 5 τότε rear ← rear + 1 Ο[rear] ← στοιχείο Αλλιώς Εμφάνισε “Γεμάτη ουρά” Τέλος_ανΤέλος Εισαγωγή

1 2 3 4 5

22 0 -5

Πίνακας Οfront rear

Page 69: ΑΕΠΠ - Μάθημα 26

Αλγόριθμος Εξαγωγής

●Ελέγχω αν υπάρχει τουλάχιστον ένα στοιχείο στην ουρά

Αλγόριθμος Εξαγωγή Αν front <= rear τότε

1 2 3 4 5

22 0 -5

Πίνακας Οfront rear

Page 70: ΑΕΠΠ - Μάθημα 26

Αλγόριθμος Εξαγωγής

●Ελέγχω αν υπάρχει τουλάχιστον ένα στοιχείο στην ουρά●Αν υπάρχει τότε βγάζω το πρώτο στοιχείο

Αλγόριθμος Εξαγωγή Αν front <= rear τότε Εμφάνισε Ο[front] front ← front + 1

1 2 3 4 5

22 0 -5

Πίνακας Οfront rear

Page 71: ΑΕΠΠ - Μάθημα 26

Αλγόριθμος Εξαγωγής

●Ελέγχω αν υπάρχει τουλάχιστον ένα στοιχείο στην ουρά●Αν υπάρχει τότε βγάζω το πρώτο στοιχείο●Αλλιώς η ουρά είναι άδεια

Αλγόριθμος Εξαγωγή Αν front <= rear τότε Εμφάνισε Ο[front] front ← front + 1 Αλλιώς Εμφάνισε “Άδεια ουρά” Τέλος_ανΤέλος Εξαγωγή

1 2 3 4 5

22 0 -5

Πίνακας Οfront rear

Page 72: ΑΕΠΠ - Μάθημα 26

Ασκήσεις για το σπίτι (Μάθημα 14)1) Σε µία στοίβα 10 θέσεων έχουν τοποθετηθεί διαδοχικά τα στοιχεία: Ζ, Χ, Β, Θ, Κ στην πρώτη, δεύτερη, τρίτη, τέταρτη και πέμπτη θέση αντίστοιχα. α. Να προσδιορίσετε την τιμή του δείκτη top της παραπάνω στοίβας. β. Αν εφαρμόζουμε με τη σειρά τις παρακάτω λειτουργίεςΑπώθηση, Απώθηση, Ώθηση Λ, Ώθηση Ν, Απώθηση ποια θα είναι η νέα τιμή του δείκτη top της παραπάνω στοίβας; γ. Να σχεδιάσετε την τελική μορφή της στοίβας με τα περιεχόμενα της.

2) Θεωρήστε ότι σε μια στοίβα μπορούμε ωθήσουμε μόνο με τη συγκεκριμένη σειρά τα δεδομένα Χ, Ρ, Α, Η (δηλ. 1ο το Χ , 2ο το Ρ, 3ο το Α και 4ο το Η.) Με ποιο τρόπο πρέπει να ωθηθούν και να απωθηθούν τα δεδομένα ώστε να έχουμε στην έξοδο τα δεδομένα Α, Ρ, Χ, Η (δηλ. 1ο το Α , 2ο το Ρ, 3ο το Χ και 4ο το Η.) ;

3) Να λύσετε την άσκηση 2 αυτή τη φορά για ουρά αντί για στοίβα