tri d'une liste chainee [pascal] - Delphi/Pascal - Programmation
Marsh Posté le 30-05-2002 à 12:05:04
Et non désolé c'est pas une solution a ton problème ce n'est qu'un
Marsh Posté le 08-06-2002 à 18:13:20
bah c'est pas possible dutiliser le contenu d'une variable pour identifier un champ si c'est que tu voulais. donc fo faire un "case of" dans le tri pour definir sur quel champ tu vas travailler. exemple :
case champ of
1:begin
valeur1 := courant^.champ1;
valeur2 := courant^.suivant^.champ1;
end;
end;
et puis ensuite tu compares valeur 1 et valeur 2 pour ton tri.
Marsh Posté le 08-06-2002 à 19:34:50
tri par le recherches des minimums successifs
action tri()
{
p,p_min : pointeurs
p<-tl
tantque (p!=NULL) faire
{
p_min<-minimum(p);
echanger(p,p_min);
p<-suivant(p);
}
}
module minimum(tl : pointeur): pointeur
{
p,p_min : pointeurs
p_min<-null
tantque(p!=NULL)faire
{
si(valeur(p)<p_min)alors
{
p_min=p
}
p<-suivant(p)
}
retourne p_min
}
module echanger (p1,p2: pointeur)
{
tempo:<type>
tempo<-valeur(p1);
affval(p1,valeur(p2))
affval(p2,tempo)
}
Marsh Posté le 11-06-2002 à 12:26:17
merci mais c un peu tard...j'avais fini par trouver ça:
procedure tri(var liste:ptr_liste);
Code :
|
Marsh Posté le 29-05-2002 à 23:48:20
vous auriez pas une idée pour faire le tri d'une liste chainee suivant la valeur de l'un des champs ? Parce que celui que j'ai refuse de marcher
Si vous avez rien qu'une petie idée d'algo, ou un site où je peux en trouver (rien trouvé d'efficace pour le moment), merci de m'en faire part...
---------------
L'invariance de l'univers lorsqu'on change de referentiel...