##Exercice 1
## On reproduit juste assez du code des listes chaînées pour l'exercice

class Cellule:

    def __init__(self, val, sui):
        self.valeur = val
        self.suivante = sui


def nieme_element(l, n):
    if n < 0 or l is None:
        raise IndexError("Indice invalide")
    elif n == 0:
        return l.valeur
    else:
        return nieme_element(l.suivante, n-1)

def ajout_10000(l):
    """rajoute 10000 entiers en tête de liste"""
    c = l
    for i in range(10000):
        c = Cellule(i, c)
    return c

def f():
    l = None
    v = -1
    while v < 0:
        try:
            v = nieme_element(l, 8000)
        except:
            l = ajout_10000(l)
    print(v)

#décommenter pour lancer le programme.
#f()

#Résultat et explication :

#Exercice 2.1

#Une classe vide, uniquement là pour que le type Pile existe
class Pile:
    pass


#opérations sur les piles
#À compléter

#Exercice 2.2



#Exercice 3.1

def occurrences(t):
    pass #À compléter

#Exercice 3.2

def test(tri, t):
    pass #À compléter
