2. PILAS EN
PROGRAMACIÓN
Temas a ver:
-Concepto de pila.
-Operaciones y aplicaciones de las pilas.
-Estructura y ejemplos.
3. CONCEPTO DE PILA
Pila es una estructura de datos en
la que la inserción y la extracción
de elementos se realiza sólo por
un extremo que se denomina cabeza.
como consecuencia, los elementos de una
pila serán eliminados en orden inverso al que
se insertaron. es decir, el último elemento que
se metió en la pila será el primero en salir de ella.
También se le conoce como estructura lifo
(last in, first out: último en entrar, primero en salir).
La pila es un contenedor de nodos y tiene dos operaciones
básicas: push (o apilar) y pop (o desapilar). 'Push' añade un nodo
a la parte superior de la pila, dejando por debajo el resto de los
nodos. 'Pop' elimina y devuelve el actual nodo superior de la pila.
4. Una pila típica es un área de la memoria de los computadores con un origen
fijo y un tamaño variable.
5. OPERACIONES Y APLICACIONES CON LAS
PILAS
Para el caso de las pilas, las operaciones básicas que se
puede llevar a cabo son:
- Insertar un elemento -Push en la pila.
-Eliminar un elemento -Pop en la pila.
-Operadores auxiliares:
-Cuando está llena
-Cuando esta bacía
6. Para trabajar fácilmente con pilas
es conveniente diseñar programas
de poner(push) y quitar (pop)
elementos. También es necesario
comprobar si la pila esta vacía, esto
puede seguirse con una variable o función
booleana de modo que cuando su valor sea
verdadero la pila esta vacía y falso en caso
contrario.
P= CIMA : Puntero de la pila
VACIA: Función booleana pila vacía.
PUSH: Subprograma para añadir, poner o insertar elementos
POP: Subprograma para eliminar o quitar elementos.
LONGMAX: Longitud máxima de la pila
7. Los datos se añaden a la pila, y el
puntero de pila es desplazado para
indicar el estado actual de la pila.
El puntero de pila no puede cruzar el
origen de la pila o se produciría un
desbordamiento, el puntero de pila da la
dirección actual de la “cima o tope o máximo
elemento de la pila“.
8. Considerando que se tiene
una pila con capacidad para
almacenar un número
máximo de elementos -MAX-,
y que el último de ellos se
indica con TOPE, a
continuación se presentan los
algoritmos correspondientes a
las operaciones
mencionadas. Si la pila está
vacía, entonces TOPE es
igual a O.
9. Algoritmo para verificar si la pila esta
vacía:
Si (TOPE = 0) entonces
Hacer BAND = VERDADERO
Si no
Hacer BAND = FALSO
Fin si
← MAX
Marzo ← TOPE
Febrero
Enero
10. Algoritmo de una pila
Var PILA: array [1..LONGMAX] de enteros
Función VACÍA {subprograma función VACÍA}
Inicio
Si p = 0
Entonces VACIA = cierto
Sino : VACIA = falso
Finsi
V = VACIA
Fin
Procedimiento METER PUSH
Inicio
Si P = LONGMAX
entonces
escribir "error en METER"
escribir "desbordamiento de la pila"
Sino
P = P + 1
S(P) = X
Finsi
Fin
Procedimiento SACAR
Inicio
Si VACIA {invocación a la función VACIA}
Entonces
Escribir "error en SACAR"
Escribir "pila vacía"
Sino
X = S(P)
P = P – 1
Finsi
Fin
11. Las Aplicaciones
Las pilas son utilizadas ampliamente para solucionar una amplia variedad de
problemas. Se utiliza en compiladores, sistemas operativos y en programas
de aplicación. Un uso muy común de las pilas es la asignación de memoria.
El uso de pilas es frecuente en muchos problemas, que van desde almacenar
la profundidad de los árboles hasta resolver crucigramas o jugar al ajedrez por
Ordenador, tambien en las direcciones de internet vistas recientemente,
Algunos de estos problemas pueden ser resueltos por otras estructuras de
datos como una cola,.
12. ENTRADA OPERACIÓN PILA
1 Apilar operando 1
2 Apilar operando 1, 2
+ Añadir 3
4 Apilar operando 3, 4
* Multiplicar 12
3 Apilar operando 12, 3
+ Añadir 15
El resultado final, 15, se encuentra en la parte superior de
la pila al final del cálculo.
13.
14.
15. . Adobe PostScript estándar de la industria de impresión y la
tecnología de imágenes está diseñado en torno a una pila
que se encuentra directamente visible y manipuladas por el
programador, Forth utiliza dos pilas.
El uso de las pilas está muy presente en el
desarrollo de software por ello la importancia de las pilas como
tipo abstracto de datos.