Traduire un code de java

le code:
// Tri selection
    ////////////////
    static Liste Tri_Selection_Liste(Liste l)
    {
 if (l == null)
     return null ;

 // Recherche du minimum : attention au decalage d'un cran de l1 et l2
 Liste l1 = l, l2 = null ; ;
 int min = l.elt ;
 while (l1.suivant != null) {
     if (l1.suivant.elt < min) {
  min = l1.suivant.elt ;
  l2 = l1 ;
     }
     l1 = l1.suivant ;
 }

 // On supprime le minimum de la liste
 if (l2 == null) {
     l.suivant = Tri_Selection_Liste(l.suivant) ;
     return l ;
 }
 else {
     l1 = l2.suivant ;
     l2.suivant = l2.suivant.suivant ;
     l1.suivant = Tri_Selection_Liste(l) ;
     return l1 ;
 }
    }

    // Tri insertion
    ////////////////
    static Liste Tri_Insertion_Liste(Liste l)
    {
 // On prend le premier element
 Liste l2 = l ;
 l = l.suivant ;
 l2.suivant = null ;

 // On ajoute les elements suivants
 while (l != null) {
     if (l.elt < l2.elt) {
  Liste l1 = l ;
  l = l.suivant ;
  l1.suivant = l2 ;
  l2 = l1 ;
     }
     else {
  Liste l1 = l ;
  l = l.suivant ;
  l1.suivant = null ;
  Ajout_Trie_Liste(l2, l1) ;
     }
 }
 return l2 ;
    }

    // Fonction d'ajout d'un element dans une liste triee
    static void Ajout_Trie_Liste(Liste l, Liste l1) {
 if (l.suivant == null) {
     l.suivant = l1 ;
 }
 else if (l1.elt < l.suivant.elt) {
     l1.suivant = l.suivant ;
     l.suivant = l1 ;
 }
 else
     Ajout_Trie_Liste(l.suivant, l1) ;
    }
Configuration: Windows XP
Internet Explorer 6.0

2 réponses

  1. Contributeur
    Bonjour parce que je dirais quand même bonjour, un minimum de politesse c'est sympa.

    Bon je dirais (espérons que Jeff ne voit pas ca ^^) que les gens ici sont bénévoles et attendent aussi un minimum. Ils veulent bien aidé mais il faut que le problème soit explicitement exposé.

    Ici le titre de ton post n'est pas du tout explicite désolé de dire ca, mais on ne comprend pas ce que tu veux et ensuite dans la description tu nous donne juste le code. Mais que faire avec cela??

    Si tu pouvais juste au moins faire une ou quelques phrases disant ce que tu veux faire cela aidera déjà pas mal.

    Je ne te critique pas, c'est juste dans l'optique que tu obtiennes une réponse rapide sur un problème qui est peut être simple. :):)

    CCM c'est ca !!
    1. Voilà ce que cela peut donner, en supposant que tu aies déclaré les types suivant :
      Liste = ^Element;
      Element = record
      elt: integer;
      suivant : Liste;
      end;

      function Tri_Selection_Liste(l: Liste):Liste;
      var
       min :integer;
       l1, l2: Liste;
      begin
      if (l = nil) then
      begin
      result := nil ;
      exit;
      end;
      
      // Recherche du minimum : attention au decalage d'un cran de l1 et l2
      l1 := l; l2 := nil ;
      min := l.elt ;
      while (l1.suivant <> nil) do
      begin 
      if (l1.suivant.elt < min) then
      begin 
      min := l1.suivant.elt ; 
      l2 := l1 ; 
      end; 
      l1 := l1.suivant ; 
      end; 
      
      // On supprime le minimum de la liste 
      if (l2 = nil) then
      begin 
      l.suivant := Tri_Selection_Liste(l.suivant) ; 
      result :=l ;
      exit; 
      end 
      else begin 
      l1 := l2.suivant ; 
      l2.suivant := l2.suivant.suivant ; 
      l1.suivant := Tri_Selection_Liste(l) ; 
      result :=l1 ; 
      end; 
      end; 
      
      // Tri insertion 
      ////////////////
      procedure Ajout_Trie_Liste(var l: Liste; l1: Liste); forward;
      function Tri_Insertion_Liste(l: Liste):Liste;
      var
       l1, l2: Liste;
      begin 
      // On prend le premier element 
      l2 := l ;
      l := l.suivant ; 
      l2.suivant := nil ;
      
      // On ajoute les elements suivants 
      while (l <> nil) do
      begin 
      if (l.elt < l2.elt) then
      begin 
      l1 := l ;
      l := l.suivant ; 
      l1.suivant := l2 ; 
      l2 := l1 ; 
      end 
      else begin 
      l1 := l ;
      l := l.suivant ; 
      l1.suivant := nil ;
      Ajout_Trie_Liste(l2, l1) ;
      end; 
      end; 
      result :=l2 ; 
      end; 
      
      // Fonction d'ajout d'un element dans une liste triee
      procedure Ajout_Trie_Liste(var l: Liste; l1: Liste);
      begin 
      if (l.suivant = nil) then
      begin 
      l.suivant := l1 ; 
      end 
      else if (l1.elt < l.suivant.elt) then 
      begin 
      l1.suivant := l.suivant ; 
      l.suivant := l1 ; 
      end 
      else 
      Ajout_Trie_Liste(l.suivant, l1) ; 
      end;