Traduire un code de java

bebetoalvaro Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   -  
lirey83 Messages postés 75 Date d'inscription   Statut Membre Dernière intervention   -
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) ;
    }
A voir également:

2 réponses

arth Messages postés 9374 Date d'inscription   Statut Contributeur Dernière intervention   1 293
 
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 !!
0
lirey83 Messages postés 75 Date d'inscription   Statut Membre Dernière intervention   13
 
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;
0