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

Να δοθούν οι αλγόριθμοι ΕισαγωγήσεΟυρά (Enqueue) και ΕξαγωγήαπόΟυρά (Dequeue) που αντίστοιχα εκτελούν τις προφανείς λειτουργίες σε μία ουρά. Να δοθεί ένα παράδειγμα στο οποίο να χρησιμοποιείται μία ουρά από ακέραιους. Η ουρά αντιπροσωπεύεται από έναν πίνακα μέχρι 100 θέσεων.

ΛΥΣΗ:

Οι αλγόριθµοι εισαγωγής και εξαγωγής από ουρά δίνονται στη συνέχεια. Χρησιµοποιείται µία λογική µεταβλητή, η σηµαία done, που δηλώνει την επιτυχή εκτέλεση της διαδικασίας. Επίσης, οι µεταβλητές rear και front δηλώνουν τους δύο δείκτες που δείχνουν αντίστοιχα στην τελευταία θέση και στην πρώτη θέση της ουράς, που είναι ένας πίνακας queue µεγέθους size. Η µεταβλητή item χρησιµεύει για την αποθήκευση του στοιχείου που εισάγεται ή εξάγεται.

Αλγόριθμος Εισαγωγή_σε_Ουρά 
∆εδομένα // rear, item // 
Αν rear < size τότε 
rear ← rear+1 
queue[rear] ← item 
done ← Αληθής 
αλλιώς 
done ← Ψευδής 
Τέλος_αν 
Αποτελέσματα // rear, done // 
Τέλος Εισαγωγή_σε_Ουρά 
 
Αλγόριθμος Εξαγωγή_από_Ουρά 
∆εδομένα // rear, item // 
Αν rear <= front τότε 
front ← front+1 
item ← queue[front] 
done ← Αληθής 
αλλιώς 
done ← Ψευδής 
Αποτελέσµατα // item, rear, done // 
Τέλος Εξαγωγή_από_Ουρά

Στον προηγούµενο αλγόριθμο η συνθήκη «rear<=front» ελέγχει αν η ουρά περιέχει στοιχεία. Η ισότητα ισχύει στην περίπτωση που η ουρά περιέχει µόνο ένα στοιχείο.

Share This