Bonjours,
J'essaye de trouver un algo permettant des trier dans une liste simplement chainée a l'aide d'une pile.
pour cela, j'ai penser parcourir ma pile, et faire un swap lorsque l'element du dessus est plus grand que celui de dessous, et cela, n fois la taille de la pile. (un peu comme un tris dans une chaine normal).
voila comment je mi suis pris :
j'ai entendu des listes doublement chainée qui pourrait peut etre facilité la chose.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 while (j < pile->size) { s1 = pile->top; //element du début s2 = pile->top->nxt; // second element while (i < pile->size) { if (!tris_ascii(s1->nom, s2->nom)) { // si s1->nom > s2->nom on swap (non trouvé) } s1 = s1->nxt; //on parcour s2 = s2->nxt; //on parcour i++; } i = 1; j++; }
quelqu'un aurait une idée?
Partager