Вы находитесь на странице: 1из 2

Facultad de Ingeniera

UNLPam

Estructura de Datos y Algoritmos


2014

PRCTICO 6
Pilas
NOTA: El prctico debe contemplar todos los consejos vistos en las unidades anteriores. Todos los integrantes del
grupo debern estar presentes en la entrega del prctico.

EJERCICIO 1: Definir una funcin que imprima una pila sin alterar el orden de los elementos.
a) Implementar como una funcin de aplicacin con el siguiente prototipo:
void print(Pila<T> p);

b) Implementar como una operacin bsica de pilas con el siguiente prototipo:


void Pila<T>::print();

EJERCICIO 2: Definir una funcin que permita apilar un elemento EN EL FONDO de la pila (en
lugar de en el tope) sin alterar el orden de los dems elementos.
a) Implementar como una funcin de aplicacin con el siguiente prototipo:
void alFondo(T x, Pila<T> &p);

b) Implementar como una operacin bsica de pilas con el siguiente prototipo:


void Pila<T>::alFondo(T x);

EJERCICIO 3: Definir una funcin que produzca el ingreso ORDENADO de elementos en una
pila. No se pide una funcin que ordene una pila, sino, una funcin que ubique los elementos
de forma ordenada, a medida que estos sean cargados.
a) Implementar como una funcin de aplicacin con el siguiente prototipo:
void ordInsert(T x, Pila<T> &p);

b) Implementar como una operacin bsica de pilas con el siguiente prototipo:


void Pila<T>::ordInsert(T x);

EJERCICIO 4: Definir una funcin que copie una pila en otra.


a) Implementar como una funcin de aplicacin con el siguiente prototipo:
void cpyPila(Pila<T> &pa,Pila<T> pb);

b) Implementar como una operacin bsica de pilas utilizando el operador =. Respetar el


siguiente prototipo:
void Pila<T>::operator =(Pila<T> pb);

EJERCICIO 5: Definir una funcin que permita desapilar UN CIERTO ELEMENTO X (que
puede no estar en la pila o estar ms de una vez) sin alterar el orden de los demas elementos.
a) Implementar como una funcin de aplicacin con el siguiente prototipo:
void desapilar(Pila<T> &p,T x);

b) Implementar como una operacin bsica de pilas con el siguiente prototipo:


void Pila<T>::desapilar(T x);

EJERCICIO 6: Definir una funcin que permita conocer si dos pilas son iguales.
a) Implementar como una funcin de aplicacin con el siguiente prototipo:
bool eqlPila(Pila<T> pa, Pila<T> pb);

b) Implementar como una operacin bsica de pilas utilizando el operador ==. Respetar
el siguiente prototipo:
bool Pila<T>::operator ==(Pila<T> pb);

EJERCICIO 7: Definir una funcin que devuelva el elemento BASE (el del fondo).
a) Implementar como una funcin de aplicacin con el siguiente prototipo:
Pgina 1

Facultad de Ingeniera
UNLPam

Estructura de Datos y Algoritmos


2014

T base(Pila<T> p);

b) Implementar como una operacin bsica de pilas con el siguiente prototipo:


T Pila<T>::base();

EJERCICIO 8: Una expendedora de pasajes de colectivo tiene 5 repositorios de monedas


(para $1, $0.50, $0.25. $0.10 y $0.05) para dar cambio cuando un pasajero saca un boleto. El
pasajero escribe el valor del pasaje en el teclado e ingresa un billete (de $2, $5 y $10) y la
mquina deber devolverle el cambio en monedas. Hacer un programa que:
1) Inicialmente pida la cantidad de monedas que tendr
cada repositorio.
2) A medida que llega un pasajero (por medio de una
tecla) pida el valor del pasaje y el billete que ingresa y
devuelva el cambio.
3) Muestre al final, la conformacin de cada repositorio
de monedas (la cantidad de monedas que tiene cada
uno).
NOTA: El cambio que devuelve la mquina debe ser mnimo
(en cantidad de monedas). Adems, si la mquina no
dispone de suficientes monedas para dar el cambio exacto,
se debe devolver el billete e informarle al pasajero de la
situacin y volver las monedas a los repositorios respectivos.

ATENCIN: El prctico se entrega el 24/04/2014.

Pgina 2

$1

$0.50

$0.25

$0.10

$0.05

Вам также может понравиться