Una pila quasi-ordenada és una pila (d’enters) que té tots els elements en ordre (el més petit al fons de la pila) llevat de dos elements que estan intercanviats i a més són sempre un a sobre de l’altre a la pila.
Per exemple, la pila
| 9 |
| 7 | <-
| 8 | <-
| 5 |
| 3 |
| 2 |
-----
està quasi-ordenada, ja que té els elements i únicament desordenats.
Feu la funció
void reordenaPila (stack<int> &P) tal que, donada
una pila quasi-ordenada d’enters positius, retorni la mateixa pila, però
ordenada.
Cal tenir en compte que la pila es passa com a paràmentre d’entrada i sortida (per referència).
Una pila quasi-ordenada d’enters.
La mateixa pila ordenada.
Heu d’enviar la solució comprimida en un fitxer .tar:
tar cvf program.tar reordenaPila.cpp
Observeu que per compilar us donem el Makefile, les
utilitats d’entrada/sortida de piles a utilitats.hpp, la
capçalera del mòdul funcional reordenaPila.hpp i el
programa principal program.cpp.
Jutge.org també us donarà un semàfor verd si envieu una solució iterativa, però no serà correcte ja que l’enunciat del problema demana que la solució enviada sigui recursiva.
Input
3 4 5 7 6 8 9 10
Output
|10| |9| |8| |7| |6| |5| |4| |3| =
Input
4 5 6 8 7 9 12 15
Output
|15| |12| |9| |8| |7| |6| |5| |4| =