SOLUCIÓN AL EJERCICIO Nš 2 DE LISTAS,PILAS Y COLAS


Una implementación para esta función puede ser:

void Reemplazar(pila P,int nuevo,int viejo)
{
  pila Q;
  int aux;

  /*Creamos una pila auxiliar para almacenar enteros*/
  Q=CrearPila(sizeof(int));

  /*Vamos sacando elementos de P y los vamos metiendo en Q*/
  /*excepto en el caso de sacar viejo,que insertamos nuevo*/
  while (!VaciaPila(P)){
    Tope(&aux,P);
    if (aux==viejo)
       Push(&nuevo,Q);
    else Push(&aux,Q);
    Pop(P);
  }

  /*ya tenemos en Q el resultado pero al contrario por tanto*/
  /*solo resta volcarla de nuevo en P*/
  while(!VaciaPila(Q)){
    Tope(&aux,Q);
    Pop(Q);
    Push(&aux,P);
  }

  /*Finalmente liberamos los recursos que fueron reservados*/
  /*para la pila auxiliar Q*/

  DestruirPila(Q);

}