TP2
1. Créer un nouveau projet java tp2
2. Dans ce projet, créer 3 packages :
• liste_pile
• test
• hanoi
3. Dans le package liste_pile, code les classes Liste, Pile et PileEntiers (questions 1 et 2)
4. Dans le package test, coder une classe qui contient la méthode main() : tester vos
classes en créant et en affichant des listes, des piles … (en ajoutant et en supprimant
des éléments)
5. Dans le package test, ajouter une méthode test_aleatoire qui répond à la (question 3).
6. Dans le package hanoi, coder la classe Hanoi avec ses attributs (les tours, le nombre
d’anneaux) et sa méthode de résolution (question 4)
7. Coder le main final
La classe Liste
• Une liste est caractérisée par :
• Un tableau d’éléments (→ classe ArrayList)
• Une position courante (une référence sur un objet et /ou un indice ?)
• La classe Liste possède un constructeur qui :
• Créée le tableau
• Initialise la position courante à ?? (! Au départ, la liste est vide …)
• La classe liste possède les méthodes
premier(),dernier(),suivant(),ajouter() qui ajoute après l’élément
courant et supprimer().
Bien prévoir tous les cas (si la liste est vide, si la liste devient vide …)
Les classes Pile et PileEntiers
• Une liste est composé d’une liste
• Afin de garantir que le principe d’une pile est respecté, la liste est
privée (visibilité private) et une pile ne dispose que de deux
méthodes empiler() et depiler()
• Les autres parties du code (exercice pair/impair …) n’utiliseront que
des piles d’entiers et ne pourront qu’empiler et dépiler (accès au
sommet de la pile uniquement) ! (utiliser des piles temporaires si
nécessaires)
L’affichage
• Eviter les blablas
• Aérer avec des retours à la ligne.
• Afficher les piles horizontalement :
par exemple pour les tours de hanoi :
tour 1 : 0 1 2 3 4
tour 2 :
tour 3:
tour 1 : 0 1 2 3
tour 2 :
tour 3: 4
tour 1 : 0 1 2
tour 2 : 3
tour 3: 4
…