Académique Documents
Professionnel Documents
Culture Documents
Una pila (stack) es una coleccin ordenada de elementos a los que slo se puede acceder por un
nico lugar o extremo de la pila. Los elementos de la pila se aaden o quitan (borran) de la misma
slo por su parte superior (cima) de la pila.
Las entradas de la pila deben ser eliminadas en el orden inverso al que se situaron en la misma.
Por ejemplo, se puede crear una pila de libros, situando primero un diccionario, encima de l una
enciclopedia y encima de ambos una novela de modo que la pila tendr la novela en la parte
superior.
Debido a su propiedad especfica ltimo en entrar, primero en salir se conoce a las pilas como
estructura de datos LIFO (last-in/first-out).
La pila se puede implementar guardando los elementos en un arreglo en cuyo caso su dimensin o
longitud es fija. Tambin se puede utilizar un Vector para almacenar los elementos. Otra forma de
implementacin consiste en construir una lista enlazada, cada elemento de la pila forma un nodo
de la lista; la lista crece o decrece segn se aaden o se extraen, respectivamente, elementos de
la pila; sta es una representacin dinmica y no existe limitacin en su tamao excepto la
memoria de la computadora.
Una pila puede estar vaca (no tiene elementos) o llena (en la representacin con un arreglo, si se
ha llegado al ltimo elemento). Si un programa intenta sacar un elemento de una pila vaca, se
producir un error, una excepcin, debido a que esa operacin es imposible; esta situacin se
denomina desbordamiento negativo (underflow). Por el contrario, si un programa intenta poner un
elemento en una pila llena se produce un error, o excepcin, de desbordamiento (overflow) o
rebosamiento.
2:Insertar (push) Pone un dato en la pila, llamado tambin apilamiento inserta un nuevo elemento
en la pila (en la cima)
3:Quitar (pop) Retira (saca) un dato de la pila
4:Pila vaca Comprueba si la pila no tiene elementos
5:Pila llena Comprueba si la pila est llena de elementos
IMPLEMENTACION:
La pila puede representarse mediante un registro con dos campos:
a) Un arreglo elementos donde se almacenan los elementos de la pila puesto que son del
mismo tipo.
b) Una variable Cima que apunta al elemento que est en la cima de la pila.
REPRESENTACION:
Una pila la representamos como una lista unidireccional o array lineal.
Donde:
Tope: Indica la direccin del ltimo elemento de la pila
n: Nmero mximo de elementos de la pila
Si tope es igual a n, la PILA est llena, y si intentamos meter un elemento ms a la pila, habr un
desbordamiento de pila (overflow).
Si tope es igual a 0, la PILA est vaca, y si intentamos sacar un elemento de la PILA, habr un
subdesbordamiento de PILA (underflow).
APLICACIONES DE PILAS
INICIO
Leer X
INICIO
Si TOPE >= 0 entonces
Escribir Pila Vacia
Caso contrario
X<-PILA (TOPE)
TOPE<-TOPE-1
Fin_si
FIN
usual
de escribir
C*D
2:FORMA PREFIJA
Ejm:
+AB
*CD
3:FORMA SUFIJA O POLACA INVERSA; cuando los operandores se escriben despus que sus
operandos Ejm:
AB+
CD*
Tarea:
1)Implementar el algoritmo de evaluacin de expresiones postfijas usando pilas
2)Escribir su forma infija, prefija y postfija de las siguientes formulas
( A+ B ) D E
F
b b24 ac
2a