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.
Observació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>]