Επιλογή Σελίδας

Να δοθούν οι αλγόριθμοι Ώθηση (Push) και Απώθηση (Pop) που αντίστοιχα εκτελούν τις προφανείς λειτουργίες σε μία στοίβα. Να δοθεί ένα παράδειγμα στο οποίο να χρησιμοποιείται μία στοίβα από ακέραιους. Η στοίβα αντιπροσωπεύεται από έναν πίνακα μέχρι 100 θέσεων.

ΛΥΣΗ: Στη συνέχεια δίνονται οι αλγόριθµοι ώθησης (push) και απώθησης (pop) από στοίβα. Χρησιµοποιείται µία λογική
µεταβλητή, η σηµαία done, που δηλώνει την επιτυχή εκτέλεση της διαδικασίας. Επίσης, η µεταβλητή top δηλώνει
την επάνω θέση της στοίβας που είναι κατειληµµένη από κάποιο στοιχείο. Τα δεδοµένα είναι αποθηκευµένα σε
ένα µονοδιάστατο πίνακα, που ονοµάζεται stack και έχει µέγεθος size. Η µεταβλητή item χρησιµεύει για την
αποθήκευση του στοιχείου που εισάγεται ή εξάγεται.

Αλγόριθμος Ωθηση 
Δεδομένα // top, item // 
Αν top<size τότε 
top ← top+1 
stack[top] ← item 
done ← Αληθής 
αλλιώς 
done ← Ψευδής 
Τέλος_αν 
Αποτελέσματα // top, done // 
Τέλος Ωθηση 
 
Αλγόριθμος Απώθηση 
∆εδομένα // top // 
Αν top<=1 τότε
item ← stack[top] 
top ← top-1 
done ← Αληθής 
αλλιώς 
done ← Ψευδής 
Τέλος_αν 
Αποτελέσµατα // item, top, done // 
Τέλος Απώθηση

Στον προηγούµενο αλγόριθµο ελέγχεται η συνθήκη «top<=1» ώστε να διαπιστωθεί αν η στοίβα έχει τουλάχιστον
ένα στοιχείο. Προφανώς, αν δεν έχει τότε επιστρέφεται το µήνυµα Ψευδής.

Share This