Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Oscar Aguilar G.
Pilas (Stacks)
Una pila (stack) es
Es un tipo especial de lista lineal en la que las
inserciones y borrado de elementos se realiza solo por
un extremo que se denomina cima o tope (top)
8
Cima 7
(Top) 6
5 EEE
4 DDD
3 CCC
2 BBB
1 AAA
Características de las pilas
Las pilas se representan por dos formas
▪ Arreglos
▪ Listas enlazadas
8 Pila
Cima 7
(Top) 6 AAA BBB CCC DDD EEE
5 EEE 1 2 3 4 5 6 7 8
4 DDD
3 CCC Cima
(Top)
2 BBB
1 AAA
Las operaciones básicas que define una pila son
CrearPilaVacia() :crea una pila sin elementos
Sacar(): Devuelve el elemento de la cima y lo borra
Meter(): añade un elemento en la Pila
EsVacia(): Devuelve verdadero si la pila no tiene
elementos
Cima():Devuelve el elemento de la cima
EsLlena(): Devuelve verdadero si la pila esta llena de
elementos
Realización de Pilas
basados en arreglos
Para realizar una pila basado en arreglos, el tipo
de dato abstracto PILA se define como
Cima: dato entero que apunta a la cima de Pila
Elementos: elementos de la Pila (vector de elementos)
TamañoMax: numero máximo del vector de elementos de
Pila
Operaciones de la Pila
CrearPilaVacia() :crea una pila sin elementos
Sacar(): Devuelve el elemento de la cima y lo borra
Meter(X): añade un elemento X en la Pila
EsVacia(): Devuelve verdadero si la pila no tiene
elementos
Cima():Devuelve el elemento de la cima
Pila
- Cima : entero
- Elementos [1..TamañoMax] : tipoElem
- TamañoMax : entero
+ CrearPila()
+ Sacar( ): tipoElem
+ Meter(elem : tipoElem)
+ EsVacia(): logico
+ Cima(): tipoElem
CrearPila()
Procedimiento CrearPila()
Inicio
cima <- 0
Fin
EsVacia()
funcion EsVacia():logico
Inicio
si (cima = 0)
devolver(Verdad)
sino
devolver(Falso)
fin_si
Fin
Cima()
Pila p1
CrearPila() 5
4
3
p1:Pila Cima 2
(Top) 1
Cima =0
Elementos =( , , , , )
TamañoMax = 5
Pila de tipo carácter de tamaño máximo 5 elementos
Pila p1
Meter(B)
5
4
Cima 3
(Top)
p1:Pila 2
1 B
Cima =1
Elementos =(B,,,,)
TamañoMax = 5
Pila de tipo carácter de tamaño máximo 5 elementos
Pila p1
Meter(P) 5
Cima 4
(Top) 3
p1:Pila 2 P
1 B
Cima =2
Elementos =(B,P, , , )
TamañoMax = 5
Pila de tipo carácter de tamaño máximo 5 elementos
Pila p1
Cima() = P
5
Cima 4
(Top) 3
p1:Pila 2 P
1 B
Cima =2
Elementos =(B,P, , , )
TamañoMax = 5
Pila de tipo carácter de tamaño máximo 5 elementos
Pila p1
Sacar() = P
5
4
Cima 3
(Top)
p1:Pila 2
1 B
Cima =1
Elementos =(B, , , , )
TamañoMax = 5
Pila de tipo carácter de tamaño máximo 5 elementos
Pila p1
Meter(X)
Meter(M) Cima
5 D
Meter(R) (Top)
Meter(D) 4 R
3 M
p1:Pila 2 X
1 B
Cima =5
Elementos =(B,X,M,R,D)
TamañoMax = 5
Pila de tipo carácter de tamaño máximo 5 elementos
Pila p1
Meter(E) Cima
5 D
(Top)
“Pila esta llena” 4 R
3 M
p1:Pila 2 X
1 B
Cima =5
Elementos =(B,X,M,R,D)
TamañoMax = 5
Pila de tipo carácter de tamaño máximo 5 elementos
Pila p1
Cima() = D Cima
5 D
(Top)
4 R
3 M
p1:Pila 2 X
1 B
Cima =5
Elementos =(B,X,M,R,D)
TamañoMax = 5
Pila de tipo carácter de tamaño máximo 5
Pila p1
Sacar() = D Cima
(Top) 5
4 R
3 M
p1:Pila 2 X
1 B
Cima =4
Elementos =(B,X,M,R,)
TamañoMax = 5
Pila de tipo carácter de tamaño máximo 5 elementos
Pila p1
Sacar() = R
Sacar() = M 5
Sacar() = X
Sacar() = B 4
3
p1:Pila Cima 2
(Top) 1
Cima =0
Elementos =(,,,,)
TamañoMax = 5
Pila de tipo carácter de tamaño máximo 5 elementos
Pila p1
Sacar() =
5
“Pila Vacia”
4
3
p1:Pila Cima 2
(Top) 1
Cima =0
Elementos =(,,,,)
TamañoMax = 5
Pila de tipo carácter de tamaño máximo 5 elementos
Pila p1
Meter(A)
Meter(B) 5
Cima 4
(Top) 3
p1:Pila 2 B
1 A
Cima =2
Elementos =(A,B,,,)
TamañoMax = 5
Aplicaciones de TAD Pila
Las pilas son una estructura de datos muy usada en
la solución de diversos tipos de problemas, entre
ellos tenemos:
Llamadas a subprogramas
Recursión
Tratamiento de expresiones aritméticas
Ordenación
Fin