/** Une classe pour manipuler des listes ordonnees * de cellules contenant des objets Data. * Celle classe etends la classe ListeData en spécialisant l'insertion. **/ public class ListeOrdonneeData extends ListeData { private static final String syntaxe = new String("Usage: java ListeOrdonnee param"); /** Le constructeur est un constructeur hérité. **/ public ListeOrdonneeData() { super(); } /** Donne la syntaxe de la commande **/ public static void usage () { System.err.println(syntaxe); } /** La méthode insertion specialise la methode d'insertion * elle insere une cellule en maintenant la liste ordonnee. **/ public void insertion(Data data) { CelluleData tmp = new CelluleData(data); CelluleData cursor = tete.suivant; while (cursor != queue) if (data.superieure(cursor.info)) cursor = cursor.suivant; else break; tmp.link(cursor.precedent,cursor); } /** La méthode main prend un parametre * @param args[0] est la taille de la liste ordonnee **/ public static void main(String[] args) { boolean pasArgument = args.length != 1; if (pasArgument) usage(); else { ListeOrdonneeData l1 = new ListeOrdonneeData(); ListeOrdonneeData l2 = new ListeOrdonneeData(); ListeOrdonneeData l3 = new ListeOrdonneeData(); ListeOrdonneeData l4 = new ListeOrdonneeData(); ListeOrdonneeData l5 = new ListeOrdonneeData(); for(int i = 0; i < Integer.parseInt(args[0]); i++) { l1.insertion(new Entier()); l2.insertion(new Reel()); l3.insertion(new Point()); l4.insertion(new Tableau()); l5.insertion(new Liste()); } l1.affiche(); l2.affiche(); l3.affiche(); l4.affiche(); l5.affiche(); } } }