On souhaite écrire une liste chaînée, mais contrairement à un TP précédent, ici, nous manipulerons directement les maillons.
Chaque maillon est non mutable, il n'est donc pas possible de modifier ni la valeur du maillon ni le chaînage.
Donc, la seule façon de construire une liste non mutable consiste à ajouter des maillons *devant* des maillons existants,
en construisant la liste à l'envers, le dernier maillon d'abord, puis l'avant-dernier maillon, etc. jusqu'au premier maillon.
Pour éviter d'exposer la valeur
null à l'utilisateur, on propose que la classe maillon (
Node) possède les 3 opérations
suivantes :
-
Un constructeur Node qui prend uniquement une valeur en paramètre ;
-
Une méthode prepend qui prend une valeur en paramètre et crée un maillon dont le successeur est le maillon courant ;
-
Une métode element qui renvoie la valeur du maillon courant.
On veut de plus que la classe
Node soit paramétrée par le type des valeurs (
element) que l'on peut mettre
à l'intérieur de la liste chaînée.
Voici un exemple d'utilisation permettant de créer une liste chaînée de maillons ayant les valeurs 1, 2 et 3.
var last = new Node<Integer>(3); // création du dernier maillon
var middle = last.prepend(2); // on ajoute un maillon devant last avec la valeur 2 et ayant last comme successeur
var first = middle.prepend(1); // on ajoute un maillon devant middle avec la valeur 1 et ayant middle comme successeur
Pour vous aider, nous vous fournissons un série de tests, appelés tests unitaires, qui vérifient la correction de l'implantation des méthodes
que vous allez écrire. Ces tests sont reconnus par Eclipse qui les lance dans une fenêtre spécifique.
Pour exécuter les tests, nous avons besoin d'une bibliothèque externe appelée
JUnit 5, donc dans un premier temps,
allez dans les propriétés de votre projet (bouton droit sur le projet, puis Properties en bas du menu) puis sélectionnez Java Build Path,
allez dans l'onglet Libraries, sélectionnez Module Path dans l'arbre puis cliquez sur "Add Libraries ...", puis sélectionnez JUnit
et enfin JUnit 5. La bibliothèque JUnit est alors ajoutée comme dépendance à votre projet.
Il ne vous reste plus qu'à aller chercher les tests en suivant le lien
vers le fichier TestNode.java.
Une fois le fichier téléchargé, vous pouvez faire un copier/coller de tout le code directement dans le répertoire
src
de votre projet dans Eclipse.