Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
ESTRUCTURAS DE DATOS
2006
PILAS
Definición.
Operaciones.
Implementación secuencial.
Aplicaciones.
Ejemplos. Ejercicios.
Otro ejemplo sería una caja llena de libros. Sólo podemos ver cuál es
el libro que está más arriba en la caja, y si ponemos o agarramos un
libro, sólo podremos actuar sobre este primer libro. No podemos
siquiera saber el número total de libros guardados en la pila. Sólo
sabremos el número de elementos de la pila de libros si previamente
los sacamos hasta vaciar la caja.
Ing. M.Sc. Fulbia Torres
Asignatura: Estructuras de Datos
Barquisimeto 2006
PILA
CARACTERÍSTICAS
TAD: pila
Operaciones:
CONSTRUCTORA
MODIFICADORAS
Dada una pila p y un valor e, del tipo base, devuelve una nueva pila
formada al apilar en p el nuevo elemento sobre la posición indicada por
el valor del tope.
AdicPila: Pila x tipo_base Pila
Dada una pila, elimina el elemento indicado por el valor del tope y
devuelve la nueva pila.
ElimPila: Pila Pila
ANALIZADORAS
Devuelve el valor del elemento que está apuntado por el tope.
InfoPila: Pila tipo_base
DESTRUCTORA
DestruirPila: Pila
Eliminar Adicionar
Tope
PILA
DEFINICIÓN
struct tipopila {
int tope;
tipo_base elementos [MAXELEM];
}
struct tipopila p;
Dada una pila p y un valor e, del tipo base, devuelve una nueva pila
formada al apilar en p el nuevo elemento sobre la posición indicada
por el valor del tope.
Dada una pila, elimina el elemento indicado por el valor del tope y
devuelve la nueva pila.
cout<< " PILA "; cout << endl; MosElem(p); cout << "\n"; //muestra los elementos
}
PILA
IMPLEMENTACIÓN ESTÁTICA (Mediante Arreglos) CON CLASES
DEFINICIÓN
# define MAXELEM número máximo de elementos
typedef tipo tipo_base;
class Pila
{
private:
int tope;
tipo_base elementos[MAXELEM];
public:
Pila( )
{
tope = -1; // condición de pila vacía Ing. M.Sc. Fulbia Torres
Asignatura: Estructuras de Datos
} Barquisimeto 2006
PILA
IMPLEMENTACIÓN ESTÁTICA (Mediante Arreglos) CON CLASES
CONTINUACIÓN DEFINICIÓN
int main()
{
pilalineal p;
bool espal;
char pal[81];
return 0;
}
PILA
APLICACIONES
Llamadas a subprogramas.
Correspondencia de paréntesis.
Tratamiento de expresiones aritméticas.
Recursividad.
CORRESPONDENCIA DE PARÉNTESIS
Pasos:
CORRESPONDENCIA DE PARÉNTESIS
$ potencia
* / (multiplicación y división)
+ - (suma, resta)
Continuación:
Ejemplo:
Convertir de infija a postfija:
A+B*C infija
A + BC* operando único
ABC*+
(A + B) * C
(A + b) * (C - D)
A $ B * C - D + E / F / (G + H)
(A + B) * (C $ (D - E) + F) - G
((A + B) * C - (D - E)) $ (F + G) Ing. M.Sc. Fulbia Torres
Asignatura: Estructuras de Datos
Barquisimeto 2006
PILA
APLICACIONES
Ejemplo:
Convertir de infija a prefija:
A+B*C infija
A + *BC operando único
+A*BC
(A + B) * C
(A + B) * (C - D)
A $ B * C - D + E / F / (G + H)
(A + B) * (C $ (D - E) + F) - G
((A + B) * C - (D - E)) $ (F + G) Ing. M.Sc. Fulbia Torres
Asignatura: Estructuras de Datos
Barquisimeto 2006
PILA
APLICACIONES
Continuación:
((A + B) * C / D + E $ F) / G
( ( ( + ( * / / + $ /
( ( ( ( ( ( ( +
( (
Salida: A B + C * D / E F $ + G /
Ejemplo:
ABC *+
Ejemplo: * + ab – cd
Capitulo de pilas
HASTA LA PRÓXIMA
CLASE