Manugal
27-06-2005, 19:41
Ho bisogno di aiuto riguardo le operazioni di push e pop che non ho molto capito.
void push(data d, stack *stk){
elem *p;
p=malloc(sizeof(elem));
p->d=d;
p->next=stk->top;
stk->top=p;
stk->cnt++;
}
data pop(stack *stk){
data d;
elem *p;
d=stk->top->d;
p=stk->top;
stk->top=stk->top->next;
stk->cnt--;
free(p);
return d;
}
In entrambe non riesco a capire perché p deve andare a puntare stk->top e stk->top deve andare a puntare p; che stk->top deve puntare a p forse l'ho capito (dato che p viene posto in cima alla lista). Ma perché anche il contrario? Grazie. :)
void push(data d, stack *stk){
elem *p;
p=malloc(sizeof(elem));
p->d=d;
p->next=stk->top;
stk->top=p;
stk->cnt++;
}
data pop(stack *stk){
data d;
elem *p;
d=stk->top->d;
p=stk->top;
stk->top=stk->top->next;
stk->cnt--;
free(p);
return d;
}
In entrambe non riesco a capire perché p deve andare a puntare stk->top e stk->top deve andare a puntare p; che stk->top deve puntare a p forse l'ho capito (dato che p viene posto in cima alla lista). Ma perché anche il contrario? Grazie. :)