C liste liée fonction push, juste vérifier si c'est correct
Donc je me demande si cette fonction push, ce qui pousse une nouvelle valeur à la liste, pile est correct
void push(node** hd, int v){
node temp;
temp = (node*)malloc(sizeof(node));
temp -> val = v;
temp -> next = *hd;
*hd = temp;
}
Merci d'avance!
Aussi je me demandais comment je pourrais faire une fonction de bruit, à la pop la plus récemment poussé valeur hors de la pile.
La structure du code ressemble à ça en passant...
typedef struct nodeStruct
{
int val;
struct nodeStruct* next;
}node;
typedef node* list;
- Cela ressemble fort à il a des problèmes. SUGGESTION: pourquoi ne pas compiler et l'exécuter sous le débogueur?
- Je ne sais pas comment utiliser mon débogueur gdb, comme je suis à court de temps pour finir ce que je vais certainement apprendre pour l'avenir.. :\ Si le problème est évident, j'aimerais juste savoir. C'est ma première fois à l'aide de Listes Liées, et je ne suis pas si grand avec les pointeurs en seulement C.
- Votre modifier réellement fait qu'aggraver les choses. Veuillez relire la réponse de @William Morris. (et je suis d'accord: typedeffing pointeurs seulement augmente la confusion)
InformationsquelleAutor Man Person | 2012-11-05
Vous devez vous connecter pour publier un commentaire.
Ne pas définir les types pointeur. Ils sont source de confusion. Définir un type normal et de déréférencement explicitement. Voici ce que vous étiez en train de faire sans les types de pointeur.
Notez que vous devez vérifier pour défaut de
malloc
. En d'autres termes,malloc
peut retourner la valeur NULL, ce qui devrait être géré à gauche pour vous.typedef node* list;
). Il suffit de ne pas le faire.typedef node* list;
list
devient unnode *