Trier une liste simplement chainée

Signaler
Messages postés
268
Date d'inscription
lundi 1 mars 2004
Statut
Membre
Dernière intervention
19 avril 2012
-
Messages postés
7
Date d'inscription
dimanche 11 avril 2010
Statut
Membre
Dernière intervention
2 janvier 2011
-
Bonjour à tous,
Dans un TP de C que je dois, il y'a une question qui me perturbe :
Nous devions créer une structure LIST qui est simplement chainée, qui est destinée à être une cinémathèque.
Dans cette liste, nous insérions des types ELEMENT qui est une structure contenant :
- L'année de sortie du film
- Le titre du film
- Le réalisateur
- Le nb d'acteurs cités.
- Le nom de chaque acteur cité
- La durée du film.

Maintenant, la question qui me perturbe, c'est comment trier cette liste simplement chainée sur la durée du film ?

J'ai bien essayé de la gérer comme si j'avais un tableau, mais ça ne fonctionne pas.

Quelqu'un pourrait-il m'aider ?

Merci des réponses que vous pourriez apporter.

3 réponses

Messages postés
452
Date d'inscription
jeudi 4 décembre 2003
Statut
Membre
Dernière intervention
19 décembre 2008
10
Pour trier ta liste chainée, à toi de gérer les pointeus convenablement. Impossible de traiter une liste chainée comme un tableau!
Quand la liste est simplement chainée, il faut supprimer l'élément de la liste pour le réinséré à la bonne place si besoin.
Je pourrais te filer un bout de code Lundi si tu veux.

En attendant, tu peux aller voir ici, c'est l'algo le plus répandu (à mon avis) pour le tri des listes simplement chainées.
En gros, il faut que tu fasses une fonction de suppression d'élément dans ta liste et une fonction d'ajour d'élément.

Pour plus d'infos, n'hésite pas à utiliser google. (sort linked list te donnes plein de résultats pertinents).
Savon
Messages postés
268
Date d'inscription
lundi 1 mars 2004
Statut
Membre
Dernière intervention
19 avril 2012
11
merci du coup de pouce, julienbj,


mais la prof nous a envoyé un mémo comme quoi que l'on devait ajouter une fonction viderList pour vider la liste justement,


alors ce que j'ai fait, c'est que je sauvegarde chacun de mes éléments dans un tableau, puis je vide ma liste, je trie mon tableau et j'insère chaque case de mon tableau dans la liste, comme ça tout est bien propre (pas forcément rapide)


merci encore une fois
Messages postés
7
Date d'inscription
dimanche 11 avril 2010
Statut
Membre
Dernière intervention
2 janvier 2011

Informaticien!!!!!!!!!! :D