Ver Mensaje Individual
  #2 (permalink)  
Antiguo 28/06/2010, 20:21
margarito04
 
Fecha de Ingreso: enero-2008
Mensajes: 229
Antigüedad: 16 años, 10 meses
Puntos: 1
Respuesta: ayuda con pilas

las pilas son estruturas de datos cuyo comportamiento es FILO(por sus siglas en ingles que significa: primero en entrar ultimo en salir).

Normalmente en C++ o en C, las pilas son manejadas mediante una version simplificada de lo que es una lista enlazada y en particular en C++ se emplean clases. Aun que tu estrategia es igual de valida.

Para poder hacer lo quieres
Debes declar
1. una funcion que permita insertar al final de la lista.
a. tener un contador que permita saber en donde se encuentra el ultimo elemento insertado.
b. En tu caso como la pila solo va a tener 5 elemento validar que no se ha alcanzado este limite.

2. una funcion que permita extraer elementos de la pila. Consideraciones.
a. Mantener un apuntador siempre al inicio de la pila
b. validar que si no se a llegado al final de la pilal.

3. una funcion que permita validar si una pila esta vacia
la forma de saber en este caso que la pila esta vacia es verificar si el fin del la pila es igual al inicio de la pila

un pequeño ejemplo de como se podria del comportamiento de una pila.

pila; la pila al inicio debe estar vacia por lo que el contador el cual apunta al ultimo elemento siempre sera 0.

se inserta Auto1

finPila = 1
iniPila = 0
posicion En Pila 0
pila = [auto1]

se inserta Auto2
finPila = 2
iniPila = 0
posicion En Pila 0 1
pila = [Auto1|Auto2]

se inserta Auto3
finPila = 2
iniPila = 0
posicion En Pila 0 1 3
pila = [Auto1|Auto2|Auto3]

se saca un auto, debes tomar en cuenta que el sacar un elemento es logico, no fisico, esto es por ejemplo en tu arreglo van a permanecer los 3 autos, sin embargo para la pila solo van a existir los autos 2 y 3. Asi si el siguiente elemento que sacarias sería el 1, con cual iniPila = 2.

finPila = 3
iniPila = 1
posicion En Pila 0 1 2
pila = [ Auto1|Auto2|Auto3]

el autos que se obtiene es el Auto1

se inserta Auto4
finPila = 4
iniPila = 1
posicion En Pila 0 1 3 4
pila = [Auto1|Auto2|Auto3|Auto4]

se saca el un auto
finPila = 4
iniPila = 2
posicion En Pila 0 1 3 4
pila = [Auto1|Auto2|Auto3|Auto4]

El auto que se obtiene es el Auto2.

Cualquier duda, con gusto te contestare