Feu la funció
stack<int> fusionaPiles (stack<int> P1,stack<int> P2);
tal que, donades dues piles ordenades i no buides d’enters positius, retorni una pila ordenada que conté tots els elements de totes dues piles. Com us podeu imaginar, el fet que totes dues piles estiguin ja ordenades, facilita enormement la tasca.
L’ordenació creixent va del fons de la pila (l’element més petit) creixent cap amunt. O si us ho estimeu més, decreixent des del cim fins al fons de la pila.
Per exemple, donades dues les piles P1,P2
, la funció ha
de tornar la pila R
.
P1 P2 R | 10 | | 9 | | 8 | | 9 | | 7 | | 8 | | 7 | | 7 | => | 5 | | 5 | | 10 | | 4 | | 3 | | 7 | | 3 | | 2 | | 4 | | 2 | ----- ------ ------
Entrada
Dues piles ordenades d’enters.
Sortida
Una pila ordenada amb tots els elements de les dues piles.
Observació
Heu d’enviar la solució comprimida en un fitxer .tar:
tar cvf program.tar fusionaPiles.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 fusionaPiles.hpp
i el programa principal program.cpp
.
Input
5 1 3 5 7 9 4 2 4 6 8
Output
|9| |7| |5| |3| |1| = |8| |6| |4| |2| = |9| |8| |7| |6| |5| |4| |3| |2| |1| =
Input
4 2 5 6 7 5 1 2 3 4 15
Output
|7| |6| |5| |2| = |15| |4| |3| |2| |1| = |15| |7| |6| |5| |4| |3| |2| |2| |1| =