Traduire un code de java

Fermé
bebetoalvaro Messages postés 14 Date d'inscription vendredi 5 janvier 2007 Statut Membre Dernière intervention 16 février 2007 - 16 févr. 2007 à 17:42
lirey83 Messages postés 75 Date d'inscription mardi 2 janvier 2007 Statut Membre Dernière intervention 18 août 2007 - 17 févr. 2007 à 12:20
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 mardi 27 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2016 1 291
16 févr. 2007 à 21:12
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 mardi 2 janvier 2007 Statut Membre Dernière intervention 18 août 2007 13
17 févr. 2007 à 12:20
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