Se trata de hacer una función sort_stack que, dada una
pila de enteros la ordene sin hacer uso de ninguna otra estructura de
datos que las pilas que se pasan como parámetros, excepto alguna
variable de tipo entero.
La cabecera de la función, con precondiciones y postcondiciones, es la siguiente:
/**
* @pre ordenado.empty()
* @post 'ordenado' contiene los elementos de 'inicial' ordenados
* con el mayor en la parte inferior y el menor en la cima.
* 'inicial' queda vacía.
*/
void sort_stack(stack<int>& inicial, stack<int>& ordenado);
Soluciones que hagan uso de estructuras de datos que no sean exclusivamente las dos pilas se invalidarán.
Sólo tenéis que enviar el procedimiento requerido; el programa principal será ignorado.
stack_sort([<top>], [<top>]) --> [<top>] stack_sort([-13<top>], [<top>]) --> [-13<top>] stack_sort([0, 7, 3<top>], [<top>]) --> [7, 3, 0<top>] stack_sort([1, 5, 4, 2<top>], [<top>]) --> [5, 4, 2, 1<top>]