Estructura de Datos: Pila
www.slideshare.net/emergar
www.youtube.com/emergaray
Una pila (stack en inglés) es
una estructura de datos que
permite almacenar y recuperar
datos, el modo de acceso a sus
elementos es de tipo LIFO (del
inglés Last In First Out, «último en
entrar, primero en salir»). Esta
estructura se aplica en multitud
de supuestos en el área
de informática debido a su
simplicidad y capacidad de dar
respuesta a numerosos procesos.
Extraído de: https://es.wikipedia.org/wiki/Pila_(inform%C3%A1tica)
Pila: Concepto
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
Para el manejo de los datos
cuenta con dos operaciones
básicas: apilar (push), que
coloca un objeto en la pila, y su
operación inversa, retirar o
desapilar (pop), que retira el
último elemento apilado.
En cada momento sólo se tiene
acceso a la parte superior de la
pila, es decir, al último objeto
apilado (denominado TOS, Top
of Stack en inglés).
Extraído de:
https://es.wikipedia.org/wiki/Pila_(inform%C3%A1tica)
Pila: Funcionamiento
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
Evaluación de expresiones en
notación postfija
(notación polaca inversa).
Pila: Usos
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
Implementación de recursividad.
Reconocedores sintácticos de lenguajes
independientes del contexto
Extraído de: https://es.wikipedia.org/wiki/Pila_(inform%C3%A1tica)
https://2.bp.blogspot.com/-Osyh2lTVVdc/UGOEbKglPFI/AAAAAAAAAG0/paJ75ZHxk_U/s1600/rpn.png
• El método de pila para la evaluación de
expresiones fue propuesto en 1955 y dos años
después patentado por Friedrich 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.
Pila: Historia
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
Pila: Ejemplo
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
Pila Vacía
Pila: Ejemplo
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
push
Pila: Ejemplo
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
Pila: Ejemplo
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
push
Pila: Ejemplo
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
Pila: Ejemplo
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
push
Pila: Ejemplo
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
Pila: Ejemplo
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
push
Pila: Ejemplo
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
Pila: Ejemplo
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
push
Pila: Ejemplo
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
Pila: Ejemplo
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
pop
Pila: Ejemplo
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
pop
Pila: Ejemplo
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
push
Pila: Ejemplo
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
Pila: Ejemplo
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
push
Pila: Ejemplo
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
Pila: Ejemplo
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
push
Pila: Ejemplo
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
• Crear (constructor): crea la pila vacía.
• Tamaño (size): regresa el número de elementos de la
pila.
• Apilar (push): añade un elemento a la pila.
• Desapilar (pop): lee y retira el elemento superior de la
pila.
• Leer último (top o peek): lee el elemento superior de
la pila sin retirarlo.
• Vacía (empty): devuelve cierto si la pila está sin
elementos o falso en caso de que contenga alguno.
Extraído de: https://es.wikipedia.org/wiki/Pila_(inform%C3%A1tica)
Pila: Operaciones
Pila: Crear
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
Pila VacíaStack p = new Stack();
p
Crear (constructor):
crea una pila vacía.
Pila: Tamaño
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
Pila Vacíaint n = p.size();
n = 0
p
Tamaño (size): regresa el
número de elementos de la
pila.
Pila: Adicionar
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
92
int c = 92;
Integer dato = new Integer(c);
p.push(dato);
p
Apilar (push):
añade un elemento a la pila.
Tope
Pila: Tamaño
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
99
12
41
58
92
int n = p.size();
n = 5
p
Tamaño (size): regresa el
número de elementos de la
pila.
Tope
Pila: Leer último
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
12
41
58
92
int x;
Integer dato = (Integer)p.peek();
x = dato.intValue();
x = 12
Leer último (top o peek):
lee el elemento superior de la pila
sin retirarlo.
p
Tope
Pila: Leer último
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
“Word”
“Excel”
“NetBeans”
“Firefox”
String x = (String)p.peek();
x = “Word”
Leer último (top o peek):
lee el elemento superior de la pila
sin retirarlo.
p
Tope
Pila: Leer último
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
12.5
41.7
58.0
92.4
double x;
Double dato = (Double)p.peek();
x = dato.doubleValue();
x = 12.5
Leer último (top o peek):
lee el elemento superior de la pila
sin retirarlo.
p
Tope
Pila: Sacar
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
99
12
41
58
92
int x;
Integer dato = (Integer)p.pop();
x = dato.intValue();
x = 99
Desapilar (pop): lee y retira el
elemento superior de la pila.
p
Tope
Pila: Sacar
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
12
41
58
92
int x;
Integer dato = (Integer)p.pop();
x = dato.intValue();
x = 99
Desapilar (pop): lee y retira el
elemento superior de la pila.
p
Tope
Pila: Esta Vacía
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
12
41
58
92
boolean esta;
esta = p.empty();
esta = false
Vacía (empty): devuelve cierto si la pila
está sin elementos o falso en caso de
que contenga alguno.
p
Tope
Pila: Esta Vacía
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
boolean esta;
esta = p.empty();
esta = true
Vacía (empty): devuelve cierto si la pila
está sin elementos o falso en caso de
que contenga alguno.
p
Pila: Ejemplo Resumiendo
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
Pila: Ejemplo
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
Pila Vacía
Pila: Ejemplo
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
push
Pila: Ejemplo
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
Tope
Pila: Ejemplo
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
push Tope
Pila: Ejemplo
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
Tope
Pila: Ejemplo
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
push
Tope
Pila: Ejemplo
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
Tope
Pila: Ejemplo
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
push
Tope
Pila: Ejemplo
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
Tope
Pila: Ejemplo
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
push
Tope
Pila: Ejemplo
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
Tope
Pila: Ejemplo
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
pop
Tope
Pila: Ejemplo
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
pop
Tope
Pila: Ejemplo
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
push
Tope
Pila: Ejemplo
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
Tope
Pila: Ejemplo
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
push
Tope
Pila: Ejemplo
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
Tope
Pila: Ejemplo
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
push
Tope
Pila: Ejemplo
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
Tope
Pila: Ejemplo Resumido
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
push
push
push
push
push
pop
push
push
push
Tope
• Implementación con un Vector
• Implementación sobre una Lista
Pila: Implementaciones
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
• Imprimir una pila
• Invertir una cadena, para saber si es un palíndromo
• Invertir una pila
• Esta un elemento
• Esta Ordenada {Ascendente, Descendente}
• Apilando cartas en un maso en un juego (poker, solitario,…)
• Apilando contendores en un buque de carga de contenedores
• Torres de Hanói
• http://www.uterra.com/juegos/torre_hanoi.php
• Otro en C++
• https://es.slideshare.net/mariale778/pilas-en-c
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
Pila: Ejemplos
Pila
2017www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
push pop
Tope

Estructura de Datos: Pila