Junior
Τι είναι μια ουρά στο πλαίσιο του προγραμματισμού;
sobes.tech AI
Απάντηση από AI
Η ουρά (Queue) είναι ένας αφηρημένος τύπος δεδομένων που υλοποιεί την αρχή FIFO (First-In, First-Out), όπου το πρώτο στοιχείο που προστίθεται θα είναι το πρώτο που θα αφαιρεθεί.
Βασικές λειτουργίες:
- Enqueue: Προσθήκη ενός στοιχείου στο τέλος της ουράς.
- Dequeue: Αφαίρεση ενός στοιχείου από την αρχή της ουράς.
- Peek/Front: Απόκτηση της τιμής του στοιχείου στην αρχή της ουράς χωρίς να το αφαιρέσετε.
- IsEmpty: Έλεγχος αν η ουρά είναι άδεια.
- Size: Απόκτηση του τρέχοντος αριθμού στοιχείων στην ουρά.
Παραδείγματα χρήσης:
- Διαχείριση εργασιών σε λειτουργικά συστήματα.
- Επεξεργασία αιτημάτων σε web servers.
- Αλγόριθμοι διασύνδεσης γραφημάτων (BFS - Breadth-First Search).
- Buffers για διαδοχική επεξεργασία δεδομένων.
Η υλοποίηση μπορεί να βασίζεται σε πίνακες ή συνδεδεμένες λίστες.
# Παράδειγμα υλοποίησης ουράς με χρήση λίστας στην Python
class Queue:
def __init__(self):
self.items = []
def is_empty(self):
return self.items == []
def enqueue(self, item):
self.items.append(item) # Προσθήκη στο τέλος
def dequeue(self):
if not self.is_empty():
return self.items.pop(0) # Αφαίρεση από την αρχή
return None
def peek(self):
if not self.is_empty():
return self.items[0]
return None
def size(self):
return len(self.items)