Está en la página 1de 14

PILAS

Una estructura de datos pila, permite


que se agreguen y eliminen nodos de
la parte superior de la misma; por eso
se le conoce ltimo en entrar,primero
en salir (LIFO).

Las operaciones bsicas que se usan


para manipular son push y pop; la
funcin push agrega un nuevo nodo a
la parte superior de la pila. La funcin
pop quita un nodo de la parte superior
de la pila.
OPERACIONES AUXILIARES CON PILAS
Pila_vaca (PILA, TOPE, BAND)

Si (TOPE=0) {Verifica si no hay elementos almacenados en la pila} entonces

Hacer BAND VERDADERO {La pila esta vaca}

sino

Hacer BAND FALSO {La pila no est vaca}

Fin - s
Pila_llena (PILA,TOPE,MAX,BAND)

Si (TOPE=MAX) entonces

Hacer BAND VERDADERO {La pila est llena}

sino

Hacer BAND FALSO {La pila no est llena}

Fin - s
Pone (PILA,TOPE,MAX,DATO)

Llamar a Pila_llena con PILA,TOPE,MAX y BAND

Si (BAND=VERDADERO) entonces

Escribir Desbordamiento - Pila llena

sino

Hacer TOPE tope+1

PILA[TOPE] DATO (Actualiza TOPE e inserta el nuevo elemento en el


TOPE de PILA)

Fin - s
Quita(PILA,TOPE,DATO)

Llamar a Pila_vaca con PILA,TOPE y BAND

Si (BAND=VERDADERO) entonces

Escribir Subdesbordamiento - Pila vaca

sino

Hacer DATO PILA[TOPE] y TOPE TOPE-1 [Actualiza TOPE]

Fin - s
Otras operaciones...

Crear (constructor): crea la pila vaca.

Tamao (size): regresa el nmero de elementos de la pila.

Apilar (push): aade 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.Vaca (empty): devuelve cierto
si la pila est sin elementos o falso en caso de que contenga alguno.
Ejemplos:
- Pilas de platos

- Pila de discos

- Pila de llamadas a funciones

- Pila de recursin

- Pila de resultados parciales de formulas aritmticas, etc


Ejemplo de pila:
Un ejemplo para ilustrar el funcionamiento de las operaciones de insercion y
eliminacion en pilas.

- Se inserta los elementos lunes, martes, miercole, jueves y viernes en PILAS, la


estructura quedara de forma lineal .

- Si se elimina un elemento y este el viernes, el TOPE apuntara ahora a jueves.

- Si en algn momento se quisiera eliminar el elemento martes, esto no sera


posible, ya que solo se puede tener acceso al elemento que se encuentra en la
cima de la pila que sera jueves.

- Una manera de solucionar el problema sera eliminar los elementos jueves y


mircoles , de esta manera quedara martes en la cima de la pila
Aplicaciones de pilas
Las pilas son muy usadas en la solucin de diversos tipos de problemas, en el
area de computacion.Algunos de los casos ms representativos de aplicacin de
las misma son:

- Llamadas a subprogramas

- Recursividad

- Tratamiento de expresiones aritmticas

- Ordenacin
La Clase Pila
La clase Pila tiene atributos y mtodos. Los atributos son la coleccin de elementos en el TOPE. Los
mtodos, por otra parte, son todas aquellas operaciones analizadas en la seccin anterior -Pila_vaca,
Pila_llena, Pone y Quita-. En la figura 3.10 se puede observar grficamente la clase Pila. Se tiene
acceso a los miembros de un objeto de la clase Pila por medio de la notaccin de puntos. Al asumir que
la variable PIOBJ representa un objeto de la clase pilas previamente creado, se puede hacer:

PIOBJ.Pila_llena para invocar el mtodo que determina si la pila est llena o no


En este mtodo no hay argumentos, ya que todos los valores requeridos son miembros de la clase.

PIOBJ.Pone(argumento) para insertar un nuevo elemento en la pila. En este mtodos slo hay un
argumento que indica el valor a guardar en la pila; los dems valores requeridos son miembros de la
clase.
Representacin de pilas
Las pilas no son estructuras fundamentales de datos; es decir, no estn definidas
como tales en los lenguajes de programacin. Para su representacin requieren el
uso de otras estructuras de datos, como:

Arreglos

Listas

Las pilas son estructuras de datos lineales, como los arreglos, ya que los
componentes ocupan lugares sucesivos en la estructura y cada uno de ellos tiene
un nico sucesor y un nico predecesor, con excepcin del ltimo y del primero,
respectivamente. Una pila se define formalmente como una coleccin de datos a
los cuales se puede acceder mediante un extremo, que se conoce generalmente
como tope.
Por ejemplo:

En esta figura se presentan dos alternativas de representacin de una pila, utilizando arreglos.