Ver Mensaje Individual
  #2 (permalink)  
Antiguo 07/07/2011, 17:36
alexg88
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: apuntadores pilas (push)

Mira esta imagen:



Los cuadrados granates son punteros existentes y el verde es un puntero nuevo. El azul es una variable de tipo struct nivel.

Ahora para ir entendiendo:

cima = *pil: cima es un puntero al primer elemento de la pila y pil es un doble puntero. Se pasa como doble puntero para poder cambiar el valor del puntero a la cima (la cima es el primer elemento de la pila).

nodo->sig=cima: esto se realiza porque el nuevo nodo va a pasar a ser el primero en la pila. Lo que estás haciendo si te fijas en el dibujo es que el elemento siguiente del primero es el segundo (que antes era el primero, por eso se iguala a cima).

cima=nodo: completamente innecesario porque sólo se utiliza dentro de la función

*pil=nodo: aquí es donde le dices que el primer elemento de la pila es el nuevo nodo.