# -*- encoding:utf8 -*-

# Définition d'une file

class Queue(object) :
    """
    Implémentation d'une file
    La représentation interne de la file est une liste.
    Les éléments sont insérés en début de liste et retirés en fin de liste.
    """

    def __init__(self):
        
        self.items = []

    def enqueue(self, item):
        """
        enqueue(obj item) --> None
        Enfile l'élément <item> dans la file.
        """

        self.items = [item]+self.items

    def dequeue(self):
        """
        dequeue() --> object
        Retourne l'élément qui se trouve au début de la file et None
        si la file est vide.
        """

        if not self.isEmpty():
            n = self.getSize()-1
            item = self.items[n] # le début de la file correspond à la fin de la liste items
            del(self.items[n])
            return item
        else:
            return None

    def isEmpty(self):
        """
        isEmpty() --> Bool
        Retourne True si la file est vide et False sinon.
        """

        return self.getSize() == 0

    def getSize(self):
        """
        getSize() --> int
        Retourne la taille de la file.
        """
        
        return len(self.items)
    
    def printContent(self):
        """
        printContent() --> None
        Affiche les éléments de la file du dernier au premier entré.
        """

        n = self.getSize()
        k = 0
        while k < n:
            print(self.items[k], end=" ")
            k += 1
