Sobes.tech
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)