Μάθημα : Προγραμματισμός Υπολογιστών Γ' ετος 2025-2026

Κωδικός : 4540050176

4540050176 - ΒΑΣΙΛΕΙΟΣ ΜΠΙΤΟΣ

Ενότητες μαθήματος

8.4 Ουρά

Μια δομή δεδομένων που χρησιμοποιείται για την μοντελοποίηση και προσομοίωση πραγματικών φαινομένων, είναι η δομή της ουράς. Τα φαινόμενα πουμοντελοποιούνται αναφέρονται στην εξυπηρέτηση ανθρώπων, αντικειμένων ή προγραμμάτων. Τέτοια παραδείγματα ουρών είναι:
● Οι ουρές στις τράπεζες και τα σούπερ-μάρκετ.
● Η ουρά των προγραμμάτων που περιμένουν να εξυπηρετηθούν από τον επεξεργαστή του υπολογιστή σας.
● Η ουρά των αιτήσεων προς το διακομιστή ιστού (web server) ενός δικτυακού τόπου.

Σε αντίθεση με τη στοίβα, που η λειτουργία της χαρακτηρίζεται ως LIFO (Last In First Out), η λειτουργία της ουράς είναι γνωστή στη βιβλιογραφία ως FIFO (First In First Out), αφού το κάθε στοιχείο της ουράς εξυπηρετείται με τη σειρά που έφτασε στην ουρά

Δύο είναι οι βασικές λειτουργίες μιας ουράς:
● Εισαγωγή στοιχείου, η οποία γίνεται στο πίσω μέρος της ουράς.
● Εξαγωγή στοιχείου, η οποία γίνεται από το εμπρός μέρος της ουράς.
Οι βασικές λειτουργίες που πρέπει να υποστηρίζει η υλοποίηση μιας ουράς είναι:
● Δημιουργία μιας κενής ουράς.
● Έλεγχος, αν η ουρά είναι κενή.
● Εισαγωγή στοιχείου.
● Εξαγωγή στοιχείου.
def enqueue(q,item):
       q.append(item)
def dequeue(q):
      return q.pop(0)
def isEmpty(q):
       return len(q) == 0
def createQueue():
       return []

Δημιουργία ουράς

def enqueue(queue,i):
       queue.append(i)
def dequeue(queue):
       return queue.pop(0)
def isempty(queue):
       return len(queue)==0
def createqueue():
        return []
q=createqueue()
number=int(raw_input( 'dose stoixe;io'))
while number!=0:
         enqueue(q,number)
         print q
         number=int(raw_input('dose stoixeio'))
print q
while not isempty(q):
          number=dequeue(q)
          print number
          print q