Trier une liste simplement chainée

MasterShadows Messages postés 268 Date d'inscription lundi 1 mars 2004 Statut Membre Dernière intervention 19 avril 2012 - 15 déc. 2007 à 11:26
heavenkhn Messages postés 7 Date d'inscription dimanche 11 avril 2010 Statut Membre Dernière intervention 2 janvier 2011 - 6 janv. 2010 à 16:37
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

julienbj Messages postés 452 Date d'inscription jeudi 4 décembre 2003 Statut Membre Dernière intervention 19 décembre 2008 15
15 déc. 2007 à 15:59
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
0
MasterShadows Messages postés 268 Date d'inscription lundi 1 mars 2004 Statut Membre Dernière intervention 19 avril 2012 12
15 déc. 2007 à 16:14
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
0
heavenkhn Messages postés 7 Date d'inscription dimanche 11 avril 2010 Statut Membre Dernière intervention 2 janvier 2011
6 janv. 2010 à 16:37
Informaticien!!!!!!!!!! :D
0
Rejoignez-nous