samedi 3 juin 2017

Les piles python

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