GEEKz: PILA
-
Upload
elmer-zambrano -
Category
Documents
-
view
257 -
download
0
description
Transcript of GEEKz: PILA
Editorial
El tema central de GEEKz presenta en este número,
concentra el interés de un conjunto de disciplinas de los
diversos campos de la programación y ejecución de
programas que prestan su funcionamiento hoy en día, para
de esta forma analizar el uso de las estructuras de datos,
como lo es la Pila y su distinción de un minucioso
conocimiento de todas las dimensiones que comprende el
tema, y un fuerte compromiso y responsabilidad de los
posibles hechos en los que dicha estructura puede ser
empleada, su formulación dentro de la programación y su comportamiento dentro del
lenguaje.
Los puntos seleccionados dan cuenta de diversas realidades, modalidades de abordajes
y enfoques a atender en lo que respecta al conocimiento de una importante estructura
de datos, y priorizar un tema que constituye una parte fundamental en la construcción y
desarrollo de un lenguaje programable adecuado. Se encuentran la presentación,
partiendo de sus características, fundamentalmente desde un marco conceptual de
desarrollo, construyendo mejoras dentro del proceso de lo que es la programación, y la
posibilidad de mejorar el trabajo programable dentro del ambiente o lenguaje bajo el
cual se encuentra trabajando.
La direccionalidad de la acción que realiza la estructura, se encuentra sustentada no
solo por los marcos teóricos, sino también en marcos de campo, que resguardan la
importancia y la eficacia de la pila.
- Elmer Zambrano
Estructura de Datos: Pilas
Definición
Una pila es una estructura de datos a la cual se puede acceder
solo por un extremo de la misma. Las operaciones de inserción y
extracción se realizan a través del tope, por lo cual no se puede
acceder a cualquier elemento de la pila. Se la suele llamar
estructura L.I.F.O. como acrónimo de las palabras inglesas "last
in, first out" (último en entrar, primero en salir). La pila se
considera un grupo ordenado de elementos, teniendo en cuenta
que el orden de los mismos depende del tiempo que lleven
"dentro" de la estructura.
Usos concretos de la pila
Las pilas son frecuentemente utilizadas en el desarrollo de sistemas informáticos y
software en general. Por ejemplo, el sistema de soporte en tiempo de compilación y
ejecución del Pascal utiliza una pila para llevar la cuenta de los parámetros de
procedimientos y funciones, variables locales, globales y dinámicas. Este tipo de
estructuras también son utilizadas para traducir expresiones aritméticas o cuando se
quiere recordar una secuencia de acciones u objetos en el orden inverso del ocurrido
Representación de las colas
Una pila típica es un área de la memoria de los computadores con un origen fijo y un
tamaño variable. Al principio, el tamaño de la pila es cero. Un puntero de pila, por lo
general en forma de un registro de hardware, apunta a la más reciente localización en la
pila; cuando la pila tiene un tamaño de cero, el puntero de pila de puntos en el origen de
la pila.
Las dos operaciones aplicables a todas las pilas son:
Una operación apilar, en el que un elemento de datos se coloca en el lugar apuntado
por el puntero de pila, y la dirección en el puntero de pila se ajusta por el tamaño de
los datos de partida.
Una operación desapilar: un elemento
de datos en la ubicación actual
apuntado por el puntero de pila es
eliminado, y el puntero de pila se
ajusta por el tamaño de los datos de
partida.
Hay muchas variaciones en el principio
básico de las operaciones de pila. Cada
pila tiene un lugar fijo en la memoria en
la que comienza. Como los datos se
añadirán a la pila, el puntero de pila es
desplazado para indicar el estado actual
de la pila, que se expande lejos del origen
(ya sea hacia arriba o hacia abajo,
dependiendo de la aplicación concreta).
_________________________________
____________________________
OPERAR PILAS
Movimientos permitidos en una pila
Pseudocodigo de los métodos push y
pop
Si bien este es el pseudocodigo que se
debeutilizar para lograr agregar y quitar
elementos de una pila
//este algoritmo almacena el valor dato
en la pila manejando la variable tope
como el puntero del último elemento.
//max es el número máximo de
elementos que puede almacenar la pila
push(pila, max, tope, dato)
si tope < max //solo si deseamos manejar
un limite de elementos en la pila si no, no
es necesario
entonces
tope=tope + 1
pila[tope]=dato //almacena un nuevo
elemento en el siguiente espacio
disponible
si no
escribir “La pila esta llena”
Fin //si tope < max
Fin //del metodo
pop(pila, tope, dato)
si tope>0 //vemos si hay elementos en la
pila
entonces
dato=pila[tope] tope=tope-1
si no
escribir “Ya no hay elementos en la pila
Fin //si tope>0
Fin //del metodo