Traduction en Java
Liste triée en Java
Des réponses aux questions :

Question n°1 initialiser et ecrire la liste
Question n°2 trier la liste par sélection
Question n°3 insérer un élément dans la liste triée
Classe complète répondant à l'énoncé.
 


Question n°1:

Le sous programme Java implantant la méthode "initialiser" construisant la liste :

Le sous programme Java implantant la méthode "ecrire" affichant le contenu de la liste :

Remonter 


Question n°2:

La méthode "triSelect"  utilisant l'algorithme de tri par sélection afin de ranger les noms par ordre alphabétique croissant :

Remarques :
 


Remonter 



Question n°3:

La méthode "inserElem"  utilisant l'algorithme d'insertion d'un élément dans une liste triée :

Remarques :

Voici les traductions utilisées pour implanter l'algorithme d'insertion :
 
Algorithme Java Vector et String
la liste L est vide L.isEmpty( )
ousinon (ou optimisé)  ||
dernierElement de la liste L  L.lastElement( ) . Transtypé en String par :
String.valueOf(L.lastElement( ))
dernierElement de la liste L £ Elt String.valueOf(L.lastElement( )).compareTo(Elt) <= 0
ajouter Elt en fin de liste L  L.add(Elt)
taille(L) L.size( )
Element de rang i de L  String.valueOf(L.get(i))
Elt £  Element de rang i de L  String.valueOf(L.get(i)).compareTo(Elt) >= 0
insérer Elt à cette position L.insertElementAt(Elt , i)
sortir break

Remonter 


Une classe complète permettant les exécutions demandées :
 
import java.util.Vector; // nécessaire à l'utilisation des Vector

class ApplicationListeSimple {



       static void triSelect (Vector L ) {
         // sous-programme de Tri par sélection de la liste
         int n = L.size()-1;
         for ( int i = 0; i <= n-1; i++)
         { // recommence une sous-suite 
           int m = i; // i est l'indice de l'élément frontière ai = table[ i ]
           for ( int j = i+1; j <= n; j++)   // (ai+1, a2, ... , an) 
              if ( String.valueOf(L.get(j)).compareTo(String.valueOf(L.get(m))) < 0 )
                  m = j ; // indice mémorisé
            String temp = String.valueOf(L.get(m));  // int temp = table[ m ];
            L.set(m, L.get(i));  //table[ m ] = table[ i ];
            L.set(i, temp);  //table[ i ]= temp; 
         } 
      }


       static void inserElem (Vector L, String Elt ) {
         if((L.isEmpty()) || (String.valueOf(L.lastElement()).compareTo(Elt) <= 0))
            L.add(Elt);
         else
           for(int i=0; i <= L.size()-1; i++){
              if  (String.valueOf(L.get(i)).compareTo(Elt) >= 0){
                  L.insertElementAt(Elt , i);
                 break;
               }
            }
      }


       static void ecrire(Vector L) {
         for(int i=0; i<L.size(); i++) {
            System.out.print(L.get(i)+", ");
         }
         System.out.println("\nTaille de la liste chaînée = "+L.size());
      }


       static void initialiser(Vector L) {
         L.add("voiture" );
         L.add("terrien" );
         L.add("eau" );
         L.add("pied" );
         L.add("traineau" );
         L.add("avion" );
         L.add("source" );
         L.add("terre" );
         L.add("xylophone" );
         L.add("mer" );
         L.add("train" );
         L.add("marteau" );
      }


       static void main(String[] Args) {
         Vector Liste = new Vector( ); //création obligatoire d'un objet de classe Vector
        //---> contenu de la Liste - initialisation :
         initialiser(Liste);
         ecrire(Liste);

        //---> Tri de la liste :
         System.out.println("\nListe une fois triée : ");
         triSelect(Liste);
         ecrire(Liste);

        //---> Insérer un élément dans la liste triée :
         String StrInserer ="trainard";
         System.out.println("\nInsertion dans la liste de : "+StrInserer);
         inserElem(Liste, StrInserer);
         ecrire(Liste);

        //---> Contenu de la Liste - boolean remove(Object x) :
         System.out.println("\nListe.remove('pied') : ");
         Liste.remove("pied");
         ecrire(Liste);
      }
   }


 
Exécution de cette classe :

    voiture, terrien, eau, pied, traineau, avion, source, terre, xylophone, mer, train, marteau, 
    Taille de la liste chaînée = 12

    Liste une fois triée : 
    avion, eau, marteau, mer, pied, source, terre, terrien, train, traineau, voiture, xylophone, 
    Taille de la liste chaînée = 12

    Insertion dans la liste de : trainard
    avion, eau, marteau, mer, pied, source, terre, terrien, train, trainard, traineau, voiture, xylophone, 
    Taille de la liste chaînée = 13

    Liste.remove('pied') : 
    avion, eau, marteau, mer, source, terre, terrien, train, trainard, traineau, voiture, xylophone, 
    Taille de la liste chaînée = 12
 

Source recopiable (cliquez sur le lien)

Image en diagrammes structurés JGrasp-Like du programme

informations sur les diagrammes

Remonter