Vous êtes sur la page 1sur 5

TIPO ABSTRACTO DE DATOS PILA

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.

Especificaciones de una pila


Las operaciones que sirven para definir una pila y poder manipular su contenido son las siguientes.
Tipo de dato Elemento que se almacena en la pila
Las Operaciones sobre pilas son:

1: CrearPila Inicia la pila al estado vaco

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

Desde el sistema operativo se puede controlar la ejecucin de todas las ordenes de un


archivo batch.
Dentro de un programase realizan llamadas a subprogramas entonces el programa
principal debe recordar el lugar donde se hizo la llamada para poder retornar all cuando el
subprograma haya terminado y poder continuar con la ejecucin del programa.
Para formar cadena de caracteres
Para separar un texto en letras, dgitos y smbolos
Para evaluar expresiones matemticas.

ALGORITMO DE APILAMIENTO (PUSH) O METER


Funcin: Aade un nuevo elemento a la cima de la pila
Entrada: Pila, nuevo elemento
Precondiciones: Pila no est llena
Salida: Pila cambiada
Poscondiciones: Pila = pila original con nuevo elemento aadido a la cabeza

INICIO
Leer X

// * Donde X es el elemento a insertar *//

Si TOPE >= N entonces


Escribir Pila Llena
Caso contrario
TOPE<- TOPE +1
PILA(TOPE)<- X
Fin_si
FIN
ALGORITMO DE DESAPILAMIENTO (POP) O SACAR
Funcin: Quita elemento de la cima de la pila y lo devuelve en variable
Entrada: Pila
Precondiciones: Pila no est vacia
Salida: Pila cambiada, elemento sacado en variable X
Poscondiciones: Pila = pila original con elemento quitado dela cima.

INICIO
Si TOPE >= 0 entonces
Escribir Pila Vacia
Caso contrario
X<-PILA (TOPE)
TOPE<-TOPE-1
Fin_si
FIN

APLICACIONES DE LAS PILAS


NOTACION POLACA:
Lleva ese nombre en honor a su descubridor el Polaco Jan Lukasiewicz.
Al evaluar expresiones aritmticas que incluyen valores constantes y smbolos de operaciones,
para obtener el resultado debemos practicar varios barridos teniendo en cuenta la jerarqua de los
operadores. El mtodo de la Notacin Polaca consiste en resolver la expresin en un solo barrido
sin tener en cuenta las prioridades de los operadores ni los parntesis.
Este mtodo tiene 3 formas de represesntar las expresiones y se denominan:
Infija, prefija y posfija.
1: FORMA INFIJA; denota la costumbre
operandos. Ejm:
A+B

usual

de escribir

operadores binarios entre sus

C*D

2:FORMA PREFIJA

O POLACA; cuando los operadores se escribe antes que sus operandos

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

Vous aimerez peut-être aussi