Disponemos de una clase Stack
con elementos de tipo T
(fichero stack.hh
). Implementad un método de esta clase que inserte un nuevo elemento con cierto valor (parámetro explícito) en la pila (parámetro implícito). La pila está ordenada, y el elemento que se introduce mantiene la pila ordenada.
/** * @pre: La pila (parámetro implícito) está ordenada * de menor (bottom) a mayor (top). * * @post: Se ha introducido en la pila p.i. de forma ordenada * un nodo con contenido 'value'. */ void push_sort(T value);
(La declaración del método push_sort
está al final del fichero stack.hh
.)
Los ficheros públicos (icono del gatito) incluyen un .tar
con main.cc
, stack.hh
y un Makefile
. También se incluye una copia de los juegos de prueba públicos por comodidad. En la carpeta donde se descompriman se puede: compilar con "make
"; y testear con "make test
".
El main.cc
ya se encarga de leer la entrada, procesar los comandos y producir la salida. Para entregar, solo es necesario subir al Jutge vuestro archivo stack.hh
modificado.
Observación
Al implementar push_sort
no se pueden llamar otras operaciones de la clase, y todo se debe implementar con punteros.
Entrada
El programa principal tiene un bucle donde se van leyendo comandos, uno por línea, y para cada una se realiza una operación de la pila. El nombre de los comandos se corresponde con el de los métodos de la pila. Consultad los juegos de prueba, ya que son auto-explicativos.
Salida
La salida es el estado de la pila cada vez que la entrada contiene un comando size
o print
. Consultad los juegos de prueba, ya que son auto-explicativos.
Input
push 1 push 2 size push 3 print push_sort 0 print
Output
size is 2 <top> 3, 2, 1 <bottom> <top> 3, 2, 1, 0 <bottom>
Input
size print push_sort -7 push_sort 0 print push_sort -3 print size
Output
size is 0 <top> <bottom> <top> 0, -7 <bottom> <top> 0, -3, -7 <bottom> size is 3