Il s'agit d'écrire une procédure inverser_tas1
pour inverser l'ordre des tas du tas 1. Par exemple, si on a Tas 1:"TCCPK"
alors après exécution de l'instruction inverser_tas1 (
), on doit avoir Tas 1:"KPCCT"
.
Question
Faîtes-le avec l'hypothèse que les autres tas sont vides.
def inverser_tas1 () :
while tas_non_vide(1) :
deplacer_sommet(1,2)
while tas_non_vide(2) :
deplacer_sommet(2,3)
while tas_non_vide(3) :
deplacer_sommet(3,1)
Question
Réaliser la procédure sans supposer que les autres tas sont vides.
Une solution consiste à suivre l'algorithme
vider le tas 1 sur le tas 2 en comptant le nombre n de cartes déplacée
déplacer les n cartes se trouvant au sommet du tas 2 vers le tas 3
déplacer les n cartes se trouvant au sommet du tas 3 vers le tas 1
def inverser_tas1 () :
n = 0
while tas_non_vide(1) :
deplacer_sommet(1,2)
n = n + 1
for i in range [0,n] :
deplacer_sommet(2,3)
for i in range [0,n] :
deplacer_sommet(3,1)