Rechercher : dans
Par :

Tri de liste chainée

Dernière réponse le 27 mar 2002 à 22:28:57 RezzA, le 27 mar 2002 à 17:34:01 
 Signaler ce message aux modérateurs

Je recherche un algo de trie pour un liste chainée : mettre le plus grand en tête.
merci

Meilleures réponses pour « tri de liste chainée » dans :
Liste simplement chaînée VoirLISTES SIMPLEMENT CHAINÉES Requis I. INTRODUCTION II. Définition III. La construction du prototype d'un élément de la liste IV. Opérations sur les listes chaînées A. Initialisation B. Insertion d'un élément dans la liste 1. Insertion...
Liste doublement chaînée VoirLISTES DOUBLEMENT CHAINÉES Requis I. INTRODUCTION II. Définition III. La construction du prototype d'un élément de la liste IV. Opérations sur les listes doublement chaînées A. Initialisation B. Insertion d'un élément dans la liste 1....
Listes circulaires (Ring Buffer) VoirListes circulaires Requis I. INTRODUCTION II. Définition III. La construction du prototype d'un élément de la liste IV. Opérations sur les listes circulaires A. Initialisation B. Insertion d'un élément dans la liste 1. Insertion dans...
Langage C - Les listes chaînées VoirLa notion de structure autoréferrentielle Une structure autoréferrentielle (parfois appelée structure récursive) correspond à une structure dont au moins un des champs contient un pointeur vers une structure de même type. De cette façon on crée...

1

Peguinette, le 27 mar 2002 à 18:22:44

Généralement on ne tri jamais une liste chainee lorsqu'elle est construite. Ce que l'on fait c'est que lorsqu'on ajoute un element à cette liste, on le compare à ceux qui existe dejà et on le place au bon endroit.

Au cas où tu veuilles vraiment trier, tu peux extraire chaque element et le mettre dans une nouvelle liste chainée en le placant à la bonne place.

Ou alors tu prends le premier element de ta liste chainée et tu le compare au deuxième et si ca ne va pas tu les intervertis, tu passe au suivant et tu fait pareil ... Tu fait cette manipe jusqu'à la fin de la chaine et tu comptabilise le nombre de permutations que tu as fait. Ensuite tu recommences jusqu'a ce que tu n'ai fait aucune permutation.
ex:
1 2 3 1 3 2
2 3 1 3 2 1
3 2 3 2 1 1
3 3 2 2 1 1

Tu peux aussi commencer par la fin mais c'est parfois moins rapide.
ex:
1 2 3 1 3 2
3 1 2 3 1 2
3 3 1 2 2 1
3 3 2 1 2 1
3 3 2 2 1 1

---------
Peguinette

Répondre à Peguinette

2

 tafiscobar, le 27 mar 2002 à 22:28:57

Il t'as repondu mais en tout cas, je te consille la premiere solution plus rapide et qui demande moins de lignes de code.
tafiscobar

Répondre à tafiscobar