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 :

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++;
   }
j'ai entendu des listes doublement chainée qui pourrait peut etre facilité la chose.
quelqu'un aurait une idée?