Presentación guía sencilla en Microsoft Excel.pptx
Pilas Struct
1. Johan Ferney Pino Cuesta
Jeiler Antonio Padilla Córdoba
Marian Ramírez Garrido
Dumar Leonardo Serna
Arley Fernando Blandón Valencia
ESTRUCTURA DE DATOS
PILAS
PRESENTADO POR:
2. HISTORIA
El método de pila para la evaluación de
expresiones fue propuesto en 1955 y dos
años después patentado por Fiedrich
L.Bauer, quién recibió en 1988 el premio
"IEEE Computer Society Pioneer Award" por
su trabajo en el desarrollo de dicha
estructura de datos.
3. PILAS
Es una lista ordinal o estructura de datos en la
que el modo de acceso a sus elementos es de
tipo LIFO (last in first out, es decir, "último en
entrar, primero en salir") que permite almacenar
y recuperar datos.
Son aquellas que solo tiene 2 operaciones, Push
(Inserción) y Pop (Eliminación) la cual solo se
puede efectuar por un extremo llamado Top.
4. ACCESO A LA PILA
realizamos 2 operaciones a través de la CABEZA,
Para manejar los datos se cuenta con dos
operaciones básicas: "apilar" (Push (Inserción)), que
coloca un objeto en la pila, y su operación inversa,
"retirar" o "desapilar" (Pop (Eliminación)), que
retira el último elemento apilado.
5. OPERACIONES
Una pila cuenta con 2 operaciones imprescindibles: apilar y des-apilar,
a las que en las implementaciones modernas de las pilas se suelen
añadir más de uso habitual.
• Crear: se crea la pila vacía.
• Apilar: se añade un elemento a la pila.(push)
• Des-apilar: se elimina el elemento frontal de la pila.(pop)
• Cima: devuelve el elemento que está en la cima de la pila. (top o
peek)
• Vacía: devuelve cierto si la pila está vacía o falso en caso contrario.
6. OPERACIÓN CREAR_PILA
La creación de la pila se realizará mediante el
constructor por defecto. La tarea que deberá
realizar será decir que no existen elementos en la
pila:
stack: Pila
stack.Cima ← 0
Pila::Pila (void)
{
cima = 0;
}
7. OPERACIÓN DE INSERCIÓN DE
INFORMACIÓN (APILAR)
La operación de inserción normalmente se conoce por su nombre
inglés Push, o Apilar. La operación aplicada sobre un pila y un valor
x, inserta x en la cima de la pila.
8. Algoritmo Apilar
Entradas
x: Valor {* elemento que se desea insertar *}
stack: Pila de Valor
Salidas
stack
Inicio
Si ( stack.Cima = MAX ) entonces
Error "pila llena"
Sino
stack.Cima ← stack.Cima + 1
stack.Info [stack.Cima]
Fin_sino
Fin
bool Pila::Apilar (Valor x)
{
bool error;
if (cima == MAX)
error = true;
else
}
error = false;
info[cima] = x;
cima++;
{
return error;
}
;
9. OPERACIÓN DE ELIMINACIÓN DE
INFORMACIÓN (DESAPILAR)
La operación de borrado elimina de la estructura el elemento
situado en la cima. Normalmente recibe el nombre de Pop en la
bibliografía inglesa.
10. Algoritmo Desapilar
Entradas
stack: Pila de Valor
Salidas
stack
x: Valor
Inicio
{* comprobar si se pueden eliminar
elementos de la pila *}
Si ( Pila_Vacia ( stack ) ) entonces
Error “pila vacia”
sino
stack.Cima ← stack.Cima - 1
Fin_si
Fin
bool Pila::Desapilar (void)
}
bool error;
if (cima == 0)
error = true;
else
}
error = false;
cima--;
{
11. OPERACIÓN DE CONSULTA DE
INFORMACIÓN (CIMA_PILA)
La operación de consulta de la información, sólo puede
acceder al elemento que esté situado en la cima de la pila, y
proporcionar su valor.
12. Algoritmo Cima_Pila
Entradas
stack: Pila de Valor
Salidas
Valor
Inicio
{ comprobar si existe información en la
pila *}
Si ( Pila_Vacia ( stack ) ) entonces
Error “pila vacia”
sino
Devolver ( stack.Info [stack.Cima] )
Fin_si
Fin
bool Pila::CimaPila (Valor & x)
}
bool error;
if (cima == 0)
error = true;
else
}
error = false;
x = info[cima - 1];
{
return error;
13. OPERACIÓN PILA_VACIA
Esta operación permitirá determinar si es posible eliminar
elementos. La pila estará vacía si la cima está apuntando al valor
cero.
Algoritmo Pila_Vacia
Entrada
stack: Pila
Salida
(CIERTO, FALSO)
Inicio
Si ( stack.Cima = 0 ) entonces
Devolver ( CIERTO )
Sino
Devolver ( FALSO )
Fin_si
Fin
14. EJEMPLO APLICADO EN LA VIDA REAL
Un ejemplo típico de pila lo constituye un montón de platos
cuando se les esta lavando, cuando los platos esta listo para
lavarlos lo primero que hacemos es tomar un plato y después de
realizar el proceso lo ubicamos en la primera posición , luego
cogemos el segundo plato y lo ubicamos encima del primero hay
estamos realizando la operación de apilar (push), esto lo
hacemos hasta que ya no haya mas platos por lavar y la pila de
platos esta terminada (Cima Llena ).
15. Ahora los tenemos que ubicar dentro de la cocina integral de
nuestra casa, y con ello realizamos la operación de des-apilar
(pop), luego cogemos el ultimo plato que lavamos y lo vamos
metiendo en la posición correspondiente es que donde
aplicamos la forma LIFO (el último en entrar es el primero en
salir) ó (el último en lavar es el primero en colgar) y así
sucesivamente con los demás platos hasta tener la pila vacía.
16. EJEMPLO ALGORITMICO
En la figura podemos observar que el valor del tope (posición
del ultimo elemento) varia si operamos sobre la pila (si
añadimos o eliminamos elementos). Si la pila esta vacía, es
decir, si no tiene ningún elemento, el tope no tiene un valor
definido. Del ejemplo, también se desprende una propiedad
interesante: la pila es una estructura de datos dinámica, ya que
su tamaño varia cuando hacemos una operación (apilar o
desapilar) sobre ella.
tope
tope
tope tope
Apilar Apilar Apilar ApilarDesapilar
E1 E1 E1 E1 E1
E2 E2 E2 E2
E3 E4