Esborrar 0s i 1s d’una cua

Implementeu una funció ITERATIVA que donada una cua d’enters d’entrada, produeix una cua d’enters de sortida idèntica a l’anterior, excepte que, tot 0 que inicialment tenia un nombre parell d’elements abans que ell ha estat esborrat, i tot 1 que inicialment tenia un nombre senar d’elements abans que ell ha estat esborrat.

Aquesta és la capcelera de la funció:

// Pre:
// Post: La cua retornada té els mateixos elements que el valor rebut via el
//       paràmetre q, excepte que tot 0 que inicialment tenia un nombre parell
//       d'elements abans que ell ha estat esborrat, i tot 1 que inicialmente
//       tenia un nombre senar d'elements abans que ell ha estat esborrat.
queue<int> remove01(queue<int> q);

Aquí teniu un exemple de cua d’entrada i la corresponent cua retornada:

0 1 4 5 1 0 6 7 0 0 1 1 8 1 0 9 0 0 1 1 0 1
=>
4 5 1 0 6 7 0 1 8 9 0 1

Observació

Només cal enviar el procediment demanat; el programa principal serà ignorat.

Observació

La vostra funció i subfuncions que creeu han de treballar només amb cues. Heu de trobar una solució ITERATIVA i eficient del problema.

Informació del problema

Autoria: PRO1

Generació: 2026-01-25T16:26:09.696Z

© Jutge.org, 2006–2026.
https://jutge.org