Question : Bulle assortissant une liste chaînée dans C

Bonjour,

I AM ayant des ennuis avec cette fonction au tri par échange de paire de clés une liste chaînée. Je suis des noeuds perdants. Pourriez-vous svp m'aider à comprendre ce que je fais mal et à obtenir cette droite ?

Thanks
class= > " clair " de
> de " codeSnippet " de class= de
class= " lineNumbers " de
class= de
1 :
2 :
3 :
4 :
5 :
6 :
7 :
8 :
9 :
10 :
11 :
12 :
13 :
14 :
15 :
16 :
17 :
18 :
19 :
20 :
21 :
22 :
23 :
24 :
25 :
26 :
27 :
28 :
29 :
30 :
31 :
32 :
33 :
34 :
35 :
36 :
37 :
38 :
39 :
40 :
41 :
42 :
43 :
44 :
45 :
46 :
47 :
48 :
49 :
50 :
51 :
52 :
53 :
54 :
55 :
bubble_sort " de " codeSnippet945287 d'id= " de
void de class= (*node d'article)
{
   *first_prev d'article, *first, *second, *temp ;
   international i, j, n = 1 ;
   bool assorti = faux ;

   //make que ces 3 indicateurs indiquent la tête de la liste
   temp = noeud ;
   d'abord = noeud ;
   first_prev = noeud ;

 
   //count le nombre de noeuds dans la liste
   tandis que (first->next ! = NULLE)
   {
      n++ ;
      first->next de first= ;
   }


   pour (I = 1 ; i <= n ; i++)
   {
      d'abord = temp ;
      first_prev = temp ;
      en second lieu = first->next ;

      pour (j=1 ; j<= (Ni) ; j++)
	  {
         si (first->val > second->val)
         {
             si (premier temp de ==)  
             {
                first->next = second->next ;
                second->next = d'abord ;
                temp = en second lieu ;
                d'abord = deuxième ;
             }
            autrement
            {
                first->next = second->next ;
                second->next = d'abord ;
                first_prev->next = en second lieu ;
                d'abord = deuxième ;
            }
          }
         
          first_prev = d'abord ;
          d'abord = first->next ;
          en second lieu = first->next ;
       }               
    }
   assorti = rectifier ;

   PrintList () ;
}
class= de

Réponse : Bulle assortissant une liste chaînée dans C

>> racine 70 = bubble_sort (racine) ;

Faire cela :

                        tête = bubble_sort (tête) ;

parce que la tête est le pointeur global ce indique le début de la liste chaînée.


>> first_prev 304 de retour ;

Faire cela :

        retourner le temp ;

parce que c'est l'indicateur ce indique le commencement de la liste assortie.
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us