:: Enseignements :: Licence :: L3 :: 2013-2014 :: Programmation Objet avec Java ::
[LOGO]

Paquetage, structure de données, relation d'implantation


Exercice 1 - Les listes chaînées

Le but de cet exercice est d'écrire une implantation de listes chaînées.

Les fichiers sources (les .java) seront stockés dans un répertoire nommé src et les classes dans un répertoire classes.
À configurer dans Window > Preferences > Java > Build Path sous Eclipse.
Pour la suite de l'exercice, l'ensemble des classes créées devra être créé dans le paquetage fr.umlv.data.

Nous allons dans un premier temps créer une liste chaînée de chaînes de caractères.

  1. Créer une classe fr.umlv.data.Link correspondant à un maillon de la liste chaînée (donc un fichier Link.java dans le paquetage fr.umlv.data donc dans le répertoire src/fr/umlv/data).
  2. Quelle est la commande pour exécuter le main de la classe fr.umlv.data.Link ?
  3. Créer une classe fr.umlv.data.LinkedLink qui permettra de manipuler une liste chainée sans que l'utilisateur ait à manipuler des maillons.
    Cette classe maintient une référence sur le premier maillon de la liste et possède les méthodes suivantes :
    1. add(String text) qui ajoute un élément avant le premier élément.
    2. size() qui affiche le nombre d'éléments de la liste.
    3. toString() qui affiche le contenu de la liste.
Pour tester ces classes, créer une classe Main sans paquetage (on dit dans le paquetage par défaut).

Exercice 2 - liste chainee (suite)

  1. Renommer la classe Main en fr.umlv.data.main.Main.
    Dans quel répertoire doit-on se placer et quelle est la commande pour exécuter le main dans une console hors d'Eclipse ?
  2. Implanter String get(int index) qui renvoie la index-ième chaîne de caractères.
    Que doit-on faire si l'indice est invalide ?
    Pourquoi serait-il logique de changer l'implantation de size() pour que cette méthode s'exécute en temps constant ?
    Ré-implanter size.
  3. Ajouter à la classe Main une méthode first renvoyant la première chaîne de la liste.
  4. Changer les classes fr.umlv.data.LinkedLink et fr.umlv.data.Link pour une implantation plus générique à base d'Object.
    Que doit-on changer dans la méthode first ?

Exercice 3 - Générification de LinkedLink

Le but de cet exercice est de générifier les classes fr.umlv.data.LinkedLink et fr.umlv.data.Link

  1. Paramétrer la classe fr.umlv.data.LinkedLink pour que celle-ci soit générique.
  2. Modifier la classe fr.umlv.data.main.Main en conséquence.
  3. Dans la classe fr.umlv.data.LinkedLink, implanter la méthode boolean contains(Object o) indiquant si un objet est ou non contenu dans la liste chaînée.