Transferir parells de llista a cua. Versió recursiva U35940


Statement
 

pdf   zip   main.cc

thehtml

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.

Public test cases
  • Input/Output

    transferir_parells([12, 0, 0, 4, 6, 7, 10]) → l: [7] q: [12, 0, 0, 4, 6, 10]
    transferir_parells([]) → l: [] q: []
    transferir_parells([1, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14]) → l: [1, 3, 5, 7, 9, 11, 13, 15] q: [2, 4, 6, 8, 10, 12, 14]
    transferir_parells([4, 2, 0, 0, 0, 0, 15, 7, 6, 2]) → l: [15, 7] q: [4, 2, 0, 0, 0, 0, 6, 2]
    transferir_parells([0, 0, 0, 0, 0, 0, 4, 2, 5, 3, 7, 6]) → l: [5, 3, 7] q: [0, 0, 0, 0, 0, 0, 4, 2, 6]
    transferir_parells([1, 0, 0, 0, 0, 0, 2]) → l: [1] q: [0, 0, 0, 0, 0, 2]
    transferir_parells([-1, 0, 0, 0, 0]) → l: [-1] q: [0, 0, 0, 0]
    transferir_parells([0, 0, 0, 0, 0, 3]) → l: [3] q: [0, 0, 0, 0, 0]
  • Information
    Author
    Bernardino Casas
    Language
    Catalan
    Official solutions
    C++
    User solutions
    C++