Exemplo n.º 1
0
class File1:
    """ File implémentée sur la base d'une liste chainée simple"""
    def __init__(self):
        """Création d'une file vide."""
        self.__liste = Liste()

    def __len__(self):
        """Renvoie la longueur de la file."""
        return len(self.__liste)

    def enfiler(self, valeur):
        """Enfile un objet au début de la file."""
        self.__liste.inserer_queue(valeur)

    def defiler(self):
        """Retire le premier objet de la file."""
        if len(self.__liste) == 0:
            raise IndexError("File vide !")
        else:
            self.__liste.supprimer_tete()

    def __str__(self):
        """Convertis la file en une chaîne de caractères."""
        chaine = ""
        longueur_file = len(self.__liste)
        for i in reversed(range(longueur_file)):
            if i == 0:
                chaine += f"{self.__liste[i]}"
            else:
                chaine += f"{self.__liste[i]} → "
        return chaine

    def __getitem__(self, index):
        """Renvoie l'objet demandé par rapport à son index."""
        return self.__liste.__getitem__(index)
Exemplo n.º 2
0
def test_supprimer_tete():
    l = Liste()
    l._inserer_apres(5)
    l._inserer_apres(2, l.queue)
    l._inserer_apres(3, l.tete)
    v = l.supprimer_tete()
    assert v == 5 and len(l) == 2 and l.tete.valeur == 3 and l.queue.valeur == 2
    assert str(l) == "3 → 2"