É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
).
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.