Sei sulla pagina 1di 12

Organización de Archivos y Estructuras de Datos

Pilas

PILAS
Preparado por
MBA. Ana Isabel Méndez

Ultima Revisió
Revisión: Mayo 26 del 2006, por Carlos Mauricio Mata V.

1
Organización de Archivos y Estructuras de Datos
Pilas

Pila

• Una pila es una estructura LIFO, es


decir el primero en entrar, es el último
en salir.
• First-In-Last-Out (FILO) o LIFO Last-in-
First-Out

2
Organización de Archivos y Estructuras de Datos
Pilas

Descripción

• First-In-Last-Out (FILO) o LIFO Last-in-


First-Out
• La estructura de datos "pila" también
llamada "Stack", es un tipo de datos
abstracto "TDA". Una pila TDA permite
a una lista de cosas ser removidos en
forma inversa del orden en que fueron
almacenados.

3
Organización de Archivos y Estructuras de Datos
Pilas

Descripción Lógica

• A nivel lógico, una pila es un grupo ordenado de


elementos homogéneo (todos del mismo tipo). El
quitar elementos existentes y añadir nuevos
elementos puede realizarse solo por la cabeza de la
pila.
• La operación de una pila TDA es como "lavar"
(procesando) un a pila de platos en la cocina,
sólamente el más reciente puede ser "lavado en
forma segura" (removido). Es decir una pila permite
remover un objeto en el orden inverso de su
almacenaje.

4
Organización de Archivos y Estructuras de Datos
Pilas

Funcionamiento de la pila

5
Organización de Archivos y Estructuras de Datos
Pilas

Funcionamiento de pilas

6
Organización de Archivos y Estructuras de Datos
Pilas

Lógica general de la pila

7
Organización de Archivos y Estructuras de Datos
Pilas

Operaciones de pilas

Operación Descripción
La operación de poner un elemento en la
void push (Object *item) pila(push) es usada para agregar datos al
"tope (top)" de la pila.
La operación de quitar un elemento de la pila
void pop( ) (pop) es usada para remover un dato del
tope de la pila.
La operación auxiliar llamada Top es para
Object* top( ) determinar cuál es el elemento que se
encuentra en el tope de la pila, sin necesidad
de quitarlo.

bool emptyStack( ) Devuelve true si la pila está vacía.

Si la pila está llena entonces cuando


bool overFlow ( ) intentamos meter(push) un elemento a la
pila, la condición resultante se llama
"desbordamiento de pila" o bien "overflow".

8
Organización de Archivos y Estructuras de Datos
Pilas

Implementaciones de las pilas

• Listas dinámicas
– Simples
• Listas estáticas
– Vectores

9
Organización de Archivos y Estructuras de Datos
Pilas

Pilas con listas simples

TOPE FONDO

Se implementa como una lista simple,


P
se elimina (Pop) y se agrega (Push) al
inicio de la lista (Top)

10
Organización de Archivos y Estructuras de Datos
Pilas

Implementación estática de la pila

Se implementa con un vector y un entero que


registra la posición de la cima TOP de la pila.

11
Organización de Archivos y Estructuras de Datos
Pilas

Resumen

• Se trabaja sólo con un extremo (entran y


salen por el mismo)
• El último en entrar es el primero en salir
• Se utiliza cuando se requiere una estructura
en orden inverso
• No existen variaciones de pilas
• Implementación:
– Lineal simple
– Estática

12

Potrebbero piacerti anche