Ce TP a pour but de créer une structure de données
Container qui stocke des éléments dans un tableau (dynamique) en utilisant une fonction de projection prise en paramètre à la création d'un
Container.
Une fonction de projection est une fonction qui prend en paramètre un élément et renvoie un entier;
lorsque l'on stocke un objet dans le
Container, on appelle la fonction de projection sur l'objet que l'on veut stocker et celle-ci renvoie l'indice du tableau qui contiendra l’élément.
Le mécanisme de stockage utilisant une fonction de projection ressemble un peu
à l'ajout dans une table de hachage avec une fonction de hachage, à ceci près que la fonction de projection devrait renvoyer une valeur différente pour chaque objet à stocker: il ne peut pas y avoir de collision.
Cela veut dire que, lors de l'ajout, si la fonction de projection renvoie une valeur négative
ou un indice qui correspond à une case déjà occupée, c'est une erreur (dans les deux cas).
Rappel: vous devez configurer le workspace d'Eclipse (File > Switch WorkSpace) pour
qu'il corresponde au répertoire
EXAM que vous avez dans le
home
de votre session de TP noté.
Attention à bien lire le sujet en entier (si si, vraiment).
JAVADOC.
L'ensemble du code de la structure de données doit se trouver dans le fichier
Container.java.
Il est interdit d'écrire du code dans un fichier auxiliaire.
La classe
Container doit être paramétrée et ne pas permettre de stocker
null.
Les tests JUnit pour toutes les questions du TP sont dans la classe
ContainerTest.java.