Implementa una acció RECURSIVA que donada un llista d’enters i una cua d’enters, transfereix els elements parells de la llista (el mateix ordre que apareixen) cap a la cua.
Donada la llista [11, 2, 7, 8, 91, 17, 12], el resultat d’aplicar l’operació seria:
llista : [11, 7, 91, 17]
cua: [2, 8, 12]
Interfície
La capçalera de la funció és la següent:
// Pre: q és una cua buida // Post: transfereix els elements parells de la llista "l" a la cua "q" en el mateix ordre que apareixen a la llista. void transferir_parells(list<int> &l, queue<int> &q)
Observació
Les funcions i accions que creïs han de treballar només amb cues i llistes (les classes queue
i list
de la biblioteca STL). Has de trobar una solució RECURSIVA i eficient del problema. En particular, no hi hauria d’haver cap bucle en cap de les funcions/accions que implementis. Si crees funcions/accions auxiliars, afegeix-hi les corresponents Precondició (Pre) i Postcondició (Post).
En les crides recursives inclou la hipòtesi d’inducció (HI) i la funció de fita (FF).
IMPORTANT: Només cal enviar el procediment demanat; el programa principal serà ignorat.
Input/Output