Pila puntero

Como puedo hacer una función o un programa en c que copia pila a una segunda pila
Respuesta
-1
Para comenzar quiero ver lo que llevas o más o menos tus ideas y te ayudare

1 respuesta más de otro experto

Respuesta
1
Como tu sabes una pila es aquel arreglo que el primer elemento que ingresa, es el ultimo en salir.
Si quieres ingresar en una Pila A los elementos 1 7 3 8 y 10 estos ingresarían así.
1|7|3|8|10
0|1|2|3|4     // estos son los indices en tu arreglo .
Ahora te preguntan. Extraer el segundo elemento ingresado en la pila
Entonces se refieren al 7, por que primero ingresaste el 1 y luego los demás sucesivamente.
Si vas a extraer ese numero, debes ir extrayendo cada elemento que fue ingresado después de el. Osea que junto con ese elemento el 3 el 8 y el 10 serán extraídos también.
Este procedimiento debe respetarse para copiar de una pila A a otra B. y el orden de los elementos deberá ser igual.
La mejor manera de hacerlo es usando una pila auxiliar.
Sean entonces tus pilas A, B y AUX.
Se desea copiar los n elementos de la pila A a la pila B.
Entonces haces el recorrido desde el ultimo elemento ingresado en A para ingresarlo sucesivamente en AUX.
es decir, si A posee 1 3 4 6
en AUX quedará 6 4 3 1
el algoritmo en c++ para este paso sería.
for(int i=0;i<n;i++){
AUX=A[n-1-i];   // se coje el ultimo elemento de A y se deposita en AUX.
}
ahora de AUX vas a pasarlo a B
y se usa el mismo algoritmo.
for(int i=0;i<n;i++){
B=AUX[n-1-i];   // se coje el ultimo elemento de AUX y se deposita en B.
}
Eso sería todo el copiado de la pila A para la pila B. Siguiendo el orden de procedimientos que se rige en una pila.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas