PROFDINFO.COM

Votre enseignant d'informatique en ligne

C'est la gloire!

(Voici une solution possible au problème, fournie par mon ami Gabor.)

Après ce travail que vous avez fait pour les Avengers, le mot s'est passé dans la communauté héroïque. Et voilà que plusieurs autres groupes de super-héros vous passent maintenant des commandes de listes doublement chaînées!

La Ligue des Justiciers (un espèce d'équivalent chez DC Comics des Avengers de Marvel (en fait c'est le contraire, mais bon)) voudrait pouvoir lister ses méchants aussi mais Superman trouve que ça serait bien de pouvoir également inclure les alliés de la Ligue dans une liste, question de trouver rapidement quelqu'un d'approprié lorsqu'ils ont besoin d'aide. Aquaman de son côté, voudrait faire une liste des différentes espèces de poissons dans l'océan Pacifique, même si les autres membres de la Ligue lèvent les yeux au ciel lorsqu'il mentionne son idée.

Professeur Charles Xavier, mutant émérite, directeur de l'École Xavier pour Enfants Doués et chef des X-Men aimerait bien ajouter un module à Cerebro (son ordinateur de localisation de mutants) permettant de lister et de trouver rapidement un mutant et accéder à son dossier, qu'il soit un membre des X-Men, de la Confrérie des Méchants Mutants, des Morlocks ou un mutant libre sans affiliation particulière.

Bref, les contrats pleuvent.

La généricité au secours de l'humanité

Cela serait plutôt inefficace de créer des copies de votre classe Liste, en modifiant chaque copie pour les besoins de chacun. Vous pensez alors à une liste générique, qui pourrait être une amélioration de votre Liste originale et qui serait aisément utilisable pour lister n'importe quoi, des super vilains aux mutants, en passant par les poissons.

Pour chaque contrat, tout ce que vous auriez à faire c'est de créer un classe correspondant à ce qui serait listé, puis à livrer votre liste générique avec cette classe. Comme votre travail serait grandement facilité, vous auriez plus de temps à consacrer à la classe à lister, ce qui vous permettrait de faire quelque chose d'encore plus complet.

Votre travail

Vous devrez grosso-modo refaire le laboratoire 1, mais en version générique. Vous en profiterez pour y apporter quelques changements mineurs en passant, de nature syntaxique. Pour ce faire, vous devrez créer:

La remise

Comme ce travail est lui aussi d'envergure, vous aurez deux semaines pour y travailler. Vous devrez donc remettre par courriel à votre charmant professeur un fichier .cs contenant votre classe ListeGénérique (et donc votre classe Noeud), votre classe Méchant et votre classe Liste, sans Main. Ne faites pas de copier/coller de texte. Votre courriel doit me parvenir au plus tard vendredi le 12 octobre à 13h30. La période de laboratoire du 5 octobre sera également consacrée à ce travail.

Il vous manque encore quelques notions pour bien ficeler ce travail (les itérateurs et les délégués) mais ne vous inquiétez pas, nous les couvrirons dans les prochains cours théoriques.

Et maintenant: héros génériques, à vos claviers!