martes, 14 de junio de 2016


La pila es una lista de elementos caracterizada porque las operaciones de inserción y eliminación de elementos se realizan solamente en un extremo de la estructura. El extremo donde se realizan estas operaciones se denomina habitualmente cima.

 En general, una pila tiene su utilidad cuando interesa recuperar la última información generada (el estado inmediatamente anterior).


INSERTAR

En primer lugar hay que decir que esta operación es muy comúnmente denominada push.

La inserción en una pila se realiza en su cima, considerando la cima como el último elemento insertado. Esta es una de las particularidades de las pilas, mientras el resto de estructuras de datos lineales se representan gráficamente en horizontal, las pilas se representan verticalmente. Por esta razón es por lo que se habla de cima de la pila y no de cola de la cima. Aunque en el fondo sea lo mismo, el último elemento de la estructura de datos.
Las operaciones a realizar para realizar la inserción en la pila son muy simples, hacer que el nuevo nodo apunte a la cima anterior, y definir el nuevo nodo como cima de la pila.

Vamos a ver un ejemplo de una inserción:  


Al insertar sobre esta pila el elemento 0, la pila resultante sería:


BORRAR

Esta operación es normalmente conocida como pop.

Cuando se elimina un elemento de la pila, el elemento que se borra es el elemento situado en la cima de la pila, el que menos tiempo lleva en la estructura.
Las operaciones a realizar son muy simples, avanzar el puntero que apunta a la cima y extraer la cima anterior.
Si aplicamos la operación pop a la pila de 4 elementos representada arriba el resultado sería:



Las pilas son muy usadas en procedimientos recursivos, tales como algoritmos de backtracking, evaluación de expresiones algebraicas, recorridos por niveles de árboles, entre otros.


Las operaciones que se presentan en esta aplicación son las siguientes:

-Push: Si se pulsa este botón se mostrará un diálogo a través del cual se podrá especificar el valor del nuevo nodo que se insertará en la pila.
-Pop: Extrae el nodo situado en la cima de la pila.
-Vaciar pila: Elimina todos los elementos de la pila.


Ejemplo 1.

Tenemos un montón de platos: Cuando se quiere introducir un nuevo plato, éste se coloca en la posición más accesible, encima del último plato. Cuando se coge un plato, éste se extrae, igualmente, del punto más accesible, el último que se ha introducido. O, si somos más estrictos, otro ejemplo sería una caja llena de libros.

Las paredes de la caja impiden acceder libremente a su contenido y sólo se puede acceder al libro que está más arriba en la caja. Al almacenar o extraer un libro, sólo es posible actuar sobre ese primer libro. No es posible siquiera saber el número total de libros guardados en la pila.

 Sólo se conocerá el número de elementos de la pila de libros si previamente los sacamos hasta vaciar la caja.

Ejemplo 2.

Otro ejemplo natural de la aplicación de la estructura pila aparece durante la ejecución de un programa de ordenador, en la forma en que la máquina procesa las llamadas a las funciones. Cada llamada a una función hace que el sistema almacene toda la información asociada con esa función (parámetros, variables, constantes, dirección de retorno, etc...) de forma independiente a otras funciones y permitiendo que unas funciones puedan invocar a otras distintas (o a si mismas) y que toda esa información almacenada pueda ser recuperada convenientemente cuando corresponda.

Como durante la ejecución de un programa sólo se puede estar ejecutando una función (asumiendo que no existe ejecución concurrente dentro del programa), esto quiere decir que sólo es necesario que sean accesibles los datos de la función activa (la que está en la cima de llamadas). De ahí que una estructura muy apropiada para este fin sea la estructura pila.

No hay comentarios.:

Publicar un comentario