Écrire une autre classe de pile,
fr.umlv.util.stack.LinkedStack , possèdant les méthodes
isEmpty ,
push et
pop et utilisant une
java.util.LinkedList
comme structure de stockage sous-jacente.
Indiquer dans quels cas, il est mieux d'utiliser une
FixedStack ou une
LinkedStack .
Comment doit-on faire s'il l'on veut pouvoir dynamiquement choisir entre les deux
implantations pour exécuter un même code ?
Modifier votre code et écrire un
main de test.
Générifier l'ensemble des classes crées.
Exercice 2 - Minimum (plus)
On souhaiterait écrire une nouvelle méthode
min qui puisse être aussi utilisée avec des chaînes de caractères ou tout
autre objet comparable (regarder
java.util.Comparable ).
Modifier la signature de votre méthode min pour que cela fonctionne.
Exercice 3 - Pile suite suite
Expliquer la différence entre
java.util.ArrayList
et
java.util.LinkedList .
Ajouter une nouvelle implantation de
Stack
utilisant une
java.util.ArrayList nommé
fr.umlv.util.stack.ArrayStack .
Rappeler pourquoi il est essentiel de ne pas avoir le même code écrit plusieurs fois.
(Plusieurs réponses sont possibles !)
On rappelle que
java.util.ArrayList
et
java.util.LinkedList implante la même interface
List , il est donc possible de partager du code entre deux des implantations
de
Stack ,
fr.umlv.util.stack.LinkedStack et
fr.umlv.util.stack.ArrayStack .
Où doit-on mettre le code commun ?
Changer le code pour qu'il soit partagé au maximum.
Attention on veux garder une complexité optimale des opérations et éviter les casts
inutiles.