Différents algorithmes pour manipuler les piles :
def creer_pile():return []
def pile_vide():
return []
def est_vide(p):
return p==[]
def sommet(p):
if est_vide(p):
print("pile vide opé impossible")
else :
return p[-1]
def empiler(s,p):
p.append(s)
return p
def depiler(p):
if est_vide(p):
print("pile vide opé dep impossible")
else:
return p.pop()
def taille(p):
return len(p)
Echange de deux élements de la pile:
def echange(pile, p, q):
if p > len(pile) or q > len(pile):
return False
else :
indce=1
pile_2 = creer_pile()
while est_vide(pile)==False:
if indce==p:
s_p=depiler(pile)
indice_p=indce
empiler(0,pile_2)
indce+=1
if indce==q:
s_q=depiler(pile)
indice_q=indce
empiler(0,pile_2)
indce+=1
else:
s=depiler(pile)
empiler(s,pile_2)
indce+=1
print(pile_2)
pile_3=creer_pile()
t = taille(pile_2)
for indice in range(1,taille(pile_2)+1):
if indice-1 == t-indice_p:
empiler(s_q,pile_3)
if indice-1 == t-indice_q:
empiler(s_p,pile_3)
else:
s=depiler(pile_2)
empiler(s,pile_3)
print(indice)
taille(pile_3)
return pile_3
Aucun commentaire:
Enregistrer un commentaire