Η Ουρά (Queue)
Μάθημα 2: Η Ουρά (Queue)
Διάρκεια: 45 Λεπτά
Εισαγωγή: Ποιος εξυπηρετείται πρώτος;
Παρακολουθήστε το βίντεο για τη λειτουργία του εκτυπωτή (Print Spooler) και της ουράς αναμονής.
1. Η Λογική FIFO
Σε αντίθεση με τη Στοίβα, η Ουρά λειτουργεί με τη μέθοδο First In, First Out.
Χρειαζόμαστε δύο δείκτες:
- Front (Εμπρός): Δείχνει τη θέση από όπου θα βγει το επόμενο στοιχείο.
- Rear (Πίσω): Δείχνει τη θέση όπου μπήκε το τελευταίο στοιχείο.
Checkpoint #1 (Κατανόηση)
2. Εισαγωγή και Εξαγωγή
| Εισαγωγή (Enqueue) | Εξαγωγή (Dequeue) |
|---|---|
Γίνεται στο τέλος (rear).rear <- rear + 1 |
Γίνεται στην αρχή (front).front <- front + 1 |
Checkpoint #2: Προγραμματιστική Λογική
Στον προγραμματισμό, η σειρά των εντολών έχει τεράστια σημασία. Στην παρακάτω άσκηση καλείσαι να ολοκληρώσεις τον αλγόριθμο της Εισαγωγής (Enqueue).
Σκέψου πριν σύρεις:
Τι πρέπει να γίνει πρώτα; Να βάλουμε το νέο στοιχείο στη θέση που δείχνει τώρα το
Τι πρέπει να γίνει πρώτα; Να βάλουμε το νέο στοιχείο στη θέση που δείχνει τώρα το
rear, ή να μετακινήσουμε το rear στην επόμενη άδεια θέση;Μίνι-Γρίφος:
Έστω ότι η Ουρά έχει Front=2 και Rear=2 (έχει μέσα 1 στοιχείο).
Εκτελούμε μια Εξαγωγή (Dequeue).
Ποιες θα είναι οι νέες τιμές των δεικτών;
Πάτα εδώ για την απάντηση
Σωστή Απάντηση: Front=3, Rear=2.
Εξήγηση: Το Front προχωράει για να "απελευθερώσει" το στοιχείο. Τώρα το Front είναι μεγαλύτερο από το Rear, που σημαίνει ότι η ουρά άδειασε!
