def inverser(liste):
n = len(liste)
if n == 0 or n == 1:
return liste
else:
x0 = liste.pop(0)
fin_liste = liste
inverser(fin_liste)
fin_liste.append(x0)
return fin_liste
inverser([1, 2, 3])
class Maillon:
def __init__(self, valeur = None, suivant = None):
self.val = valeur
self.suiv = suivant
def __str__(self):
if self.val is not None:
return str(self.val) + "-" + str(self.suiv)
else:
return str(self.val)
class ListeC:
def __init__(self, premier = None, prem_suiv=None):
self.prem = Maillon(premier, prem_suiv )
def __str__(self):
return str(self.prem)
def __repr__(self):
return str(self.prem)
def est_vide(self):
return self.prem.val is None
def tete(self):
if self.prem.val is not None:
return self.prem.val
def longueur(self):
n = 0
c = self.prem
while c is not None:
n += 1
c = c.suiv
return n
def ajoute(self, valeur):
"""
ajoute un élement en fin de liste
"""
m = Maillon(valeur)
if self.prem.val is None:
self.prem = m
else:
p = self.prem
while p.suiv is not None:
print(self.prem)
p = p.suiv
p.suiv = m
def ajoute_debut(self, valeur):
"""
ajoute un élement en debut de liste
"""
m = Maillon(valeur)
if self.prem.val is None:
self.prem = m
else:
p = self.prem
self.prem = m
m.suiv = p
L = ListeC(5)
L.ajoute(10)
L.ajoute(3)
L.ajoute(4)
L.longueur()