créer un pointeur de fonction avec un moyen passe de ne pas créer des listes?

1  // le pointeur de la fonction Créer un moyen passe de ne pas créer des listes? 
2  
3. #Include <stdio.h>
 4. #Include <stdlib.h>
 5.  Struct la personne
 6.  {
 7.      Int NUM;
 . 8      struct la personne * suivant;
 . 9  };
 10  
. 11  int main ()
 12 est  {
 13 est      struct la personne * P = NULL ;
 14      int n-, m;
 15      Scanf ( " % D% D " , et n-, et m);
 16      vide Créer ( struct la personne *,int );     // avec struct personne * créer (int); can 
. 17      int Yue ( struct la personne *, int , int );
 18 est      Create (P, n);                         // pour créer p = (n); can 
19      printf ( " % d \ le n " , Yue (P-, le n, m));
 20      retour  0 ,
 21  }
 22  
23  vide le create ( struct la personne du * P-, int le n)         // question: Pourquoi cette façon ne peut pas être créé avec succès la nouvelle liste? 
24  {
 25      structPersonne * p1, * p2;                // 改为: Personne struct * tête, * p1, * p2; 
26      p1 = ( struct personne *) malloc ( sizeof (personne));
27      int i = 0 ;
28      tandis que (i < n)
 29      {
 30          i ++ ;
31          P1-> num = i;
32          si (i == 1 ) p = p2 = p1;                // 改为: if (i == 1) tête = p2 = p1; 
33          d'autre 
34          {
 35              P2-> next = p1;
36             p2 = p1;
37          }
 38          p1 = ( struct personne *) malloc ( sizeof (personne));
39      }
 40      P2-> suivant = NULL;
41      libre (p1);
42      p1 = NULL;
43                                          // 加一行: tête de retour; 
44  }
 45  
46  int Yue ( struct personne * p, int n, int m)
 47  {
 48      int i = 0 , j = 1 , k = 0;
49      struct Personne * q * r;
50      q = r = p;
51      tandis que (k <n - 1 )
 52      {
 53          i ++ ;
54          j ++ ;
55          
56          si (i =! 1 ) r = r-> suivant;
57          si (r == NULL) r = p;
58          
59          q = q-> suivant;
60          si (q == NULL) q = p;
61          
62          si (j == m)
 63          {
 64              j =1 ;
65              k ++ ;
66              si (q == p)
 67              {
 68                  p = p-> suivante;
69                  q-> next = NULL;
70                  libre (q);
71                  q = p;
72              }
 73              autre  si (q-> suivant == NULL)
 74              {
 75                  r-> next = NULL;
76                  libre (q);
77                  q = p;
78              }
79              autre 
80              {
 81                  r-> next = q-> suivant;
82                  libre (q);
83                  q = r-> suivant;
84              }
 85          }
 86      }
 87      retour q-> num;
88 }

 

Je suppose que tu aimes

Origine www.cnblogs.com/bboykaku/p/12524378.html
conseillé
Classement