Μάθημα : Προγραμματισμός Η/Υ

Κωδικός : T522234

T522234 - ΔΗΜΗΤΡΙΟΣ ΜΠΑΜΠΑΣ

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

Ουρά

Ουρά

Μια δομή δεδομένων που χρησιμοποιείται για την μοντελοποίηση και προσομοίωση πραγματικών φαινομένων, είναι η δομή της ουράς.
π.χ. Η ουρά των προγραμμάτων που περιμένουν να εξυπηρετηθούν από τον επεξεργαστή του υπολογιστή.
Η λειτουργία της ουράς είναι γνωστή ως FIFO (First In First Out), αφού το κάθε στοιχείο της ουράς εξυπηρετείται με τη σειρά που έφτασε στην ουρά.


Δύο είναι οι βασικές λειτουργίες μιας ουράς:
Εισαγωγή στοιχείου, η οποία γίνεται στο πίσω μέρος της ουράς.
Εξαγωγή στοιχείου, η οποία γίνεται από το εμπρός μέρος της ουράς.

Υλοποίηση Ουράς σε Python

def enqueue(queue, item) :# εισαγωγή
          queue = queue.append( item )
def dequeue(queue) :# εξαγωγή
         return queue.pop( 0 )
def isEmpty(queue) : # έλεγχος
         return len(queue) == 0
def createQueue( ) : #δημιουργία
        return [ ]

Παράδειγμα


>>> def createQueue( ) : #δημιουργία
                      return [ ]

>>> oura=createQueue()
>>> oura
[]
>>> def isEmpty(queue) : # έλεγχος
                      return len(queue) == 0

>>> print isEmpty(oura)
True
>>> def enqueue(queue, item) :# εισαγωγή
                      queue = queue.append( item )

>>> enqueue(oura,'giorgos')
>>> enqueue(oura,'dimitris')
>>> enqueue(oura,'manolis')
>>> enqueue(oura,'antonia')
>>> enqueue(oura,'seri')
>>> print isEmpty(oura)
False
>>> print oura
['giorgos', 'dimitris', 'manolis', 'antonia', 'seri']
>>> for i in oura:
               print i

giorgos
dimitris
manolis
antonia
seri
>>> def dequeue(queue) :# εξαγωγή
                       return queue.pop( 0 )

>>> print dequeue(oura)
giorgos
>>> print

>>> oura
['dimitris', 'manolis', 'antonia', 'seri']
>>> print dequeue(oura)
dimitris
>>> print dequeue(oura)
manolis
>>> print dequeue(oura)
antonia
>>> print dequeue(oura)
seri

Παράδειγμα ουράς


def enqueue(queue, item) :# εισαγωγή
        queue = queue.append( item )
def dequeue(queue) :# εξαγωγή
       return queue.pop(0)
def isEmpty(queue) : # έλεγχος
        return len(queue) == 0
def createQueue( ) : #δημιουργία
        return [ ]
#-------------------------
oura=createQueue()
print 'Katastasi Ouras Keni ', isEmpty(oura)
pelatis=raw_input('onoma pelati ')
while pelatis!='TELOS':
           enqueue(oura,pelatis)
           print 'Katastasi Ouras Keni ', isEmpty(oura)
           pelatis=raw_input('onoma pelati ')
print oura
print 'exiperetisi kai exodos '
while not isEmpty(oura):
              pliktro=raw_input('o epomenos /nai=enter')
              print 'Exipireto ---->', dequeue(oura)
print 'Katastasi Ouras Keni ', isEmpty(oura)
print oura