Le but de ce TP est d’implémenter très proprement des listes chaînées de String
en Java. Pour cela, on utilisera deux classes.
La première, appelée Chainon
permettra la réalisation de la liste en elle même: une instance de Chainon
contiendra une référence vers un String
contenant la valeur stockée dans le chaînon et une référence vers le Chainon
suivant. Le dernier Chainon
mettra cette dernière à null
.
La seconde, qui sera la classe utilisée par l’utilisateur, s’appellera ListeChainee
et contiendra trois champs:
Chainon
(ou null
si la liste est vide) ;Chainon
(ou null
si la liste est vide) ;Votre implémentation doit interdire de mettre null
comme valeur dans la liste chaînée.
Ajouter les méthodes suivantes :
une méthode insere
qui insere un élément au début de la liste chaînée. Si le String
à ajouter est null
, cette méthode appelera :
throw new IllegalArgumentException("l'element insere ne peut être null");
une méthode ajoute
qui ajoute un élément à la fin de la liste chaînée. Si le String
à ajouter est null
, cette méthode aura la même comportement que insere
.
une méthode supprime
qui supprime et retourne le premier élément de la liste.
une méthode premier
qui retourne le premier élément de la liste.
une méthode dernier
qui retourne le dernier élément de la liste.
Écrire un programme qui teste les fonctionnalités implementées en manipulant des listes chainées.
Effectuer une implémentation de Liste qui utilise un tableau de type String[] pour stocker les valeurs. Il aura une taille fixée à la création et les méthodes ajoute
et insere
, si elle sont appelées alors que le tableau est plein, devront exécuter:
throw new IllegalStateException("Tableau plein");
Selon vos capacités en algorithmique, vous pouvez soit implémenter un buffer circulaire ou juste déplacer tout le contenu du tableau pour la méthode supprime
.