Pilas
En muchas ocasiones en la vida real, un fenómeno muy común es la formación de Pilas, es decir que los datos se introducen y se sacan por el mismo lugar. Ejemplos reales de esa situación son: una caja de CD tipo torre, en la que los CD solamente se pueden introducir o sacar por arriba, Una pila de platos (uno sobre otro), Una pila de libros, o meter y sacar libros de una caja,Ponerse muchas camisas: la última camisa que nos pongamos la podremos sacar fácilmente, pero para sacar la primera deberemos sacar antes todas.
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 lainformació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 unafunció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 lafunción activa (la que está en la cima de llamadas). De ahí que una estructura muy apropiada para este fin sea la estructura pila.
En general, una pila tiene su utilidad cuando interesa recuperar la última información generada (el estadoinmediatamente anterior).
Aunque suene contradictorio, programar es mucho más que escribir un programa. No es suficiente con escribir código en un lenguaje para resolver un problema y que éste funcione correctamente. El programa resultante debe ser también claro, eficiente y fácil de modificar. Eso implica una disciplina de programación y una metodología, que impongan un estilo de desarrollo quegarantice la calidad del producto.
1.- CONCEPTO DE PILA
Una pila (stack en inglés) es una lista ordinal o estructura de datos en la que el modo de acceso a sus elementos es de tipo LIFO (del inglés Last In First Out, último en entrar, primero en salir) que permite almacenar y recuperar datos. Esta estructura se aplica en multitud de ocasiones en el área de informática debido a su simplicidady ordenación implícita de la propia estructura.
Para el manejo de los datos se 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 eninglés). La operación retirar permite la obtención de este elemento, que es retirado de la pila permitiendo el acceso al siguiente (apilado con anterioridad), que pasa a ser el nuevo TOS.
Por analogía con objetos cotidianos, una operación apilar equivaldría a colocar un plato sobre una pila de platos, y una operación retirar a retirarlo.
2.-ESPECIFICACION
Una pila cuenta con 2 operacionesimprescindibles: apilar y desapilar, 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. (Constructor)
* Tamaño: regresa el número de elementos de la pila. (Size)
* Apilar: se añade un elemento a la pila. (Push)
* Desapilar: se elimina el elemento frontal de la pila. (Pop)
* Cima: devuelve el elementoque 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 (empty).
3.-OPERACIONES QUE SE REALIZAN CON LAS PILAS
Pila con 6 elementos
Insertar un elemento a la pila
Retirar un elemento de la pila
4.-IMPLEMENTACION EN BASE A PUNTEROS
La forma más simple, y habitual, de representar una pila es mediante un vector...
Regístrate para leer el documento completo.