#Unit 7 Topic 1 queues
#dynamicQueue.py demonstrates enqueuing and dequeuing items
#from a dynamic queue implemented as a list

#Author: PG Online team
#Date: 25/01/2016

#constructing a queue ADT
class Queue:
    def __init__(self):
        self.items = []
        
    def isEmpty(self):
        return self.items == []
        
    def enqueue(self, item):
        self.items.append(item)
    
    def dequeue(self):
        if len(self.items) > 0:
            return self.items.pop(0)
        else:
            return "Queue empty"
        
    def size(self):
        return len(self.items)
    
    def show(self):
        print(self.items)
     
    def showFront(self):
        print(self.items[0])
        
q = Queue()
q.show()
q.enqueue("job2")
q.enqueue("job3")
q.show()
q.enqueue("job4")
q.enqueue("job5")
q.show()
q.showFront()
q.dequeue()
q.dequeue()
q.dequeue()
q.show()
q.dequeue()
q.show()
q.dequeue()
print(q.dequeue())