Esborrar 0s i 1s d'una cua X15861


Statement
 

pdf   zip   main.cc

html

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.

Sample session
-1 -2 0 0
=>
-1 -2 0

1 9 -6 -3 0 6 0 4 -1 -5
=>
1 9 -6 -3 6 4 -1 -5

-9 -5 -7
=>
-9 -5 -7

1 -9 0 6 1 1 1 10 1 -8 5 1 -3 0 0 1 1 0 1
=>
1 -9 6 1 1 10 1 -8 5 -3 0 1 0 1

1 0 7 1 8 1
=>
1 0 7 8

0 -1 1 -1 4 4 -7 0 1 0 -8 -9 0 0 0 0 -9 -4
=>
-1 1 -1 4 4 -7 0 1 0 -8 -9 0 0 -9 -4

8 7 -2 1 1 -7 0 0 0 1 0 3 1 1 0
=>
8 7 -2 1 -7 0 3 1

0 1 -6 1 -7 5 8 0 1 1 4 -2 -5 0 1 1 1 -7 0 0
=>
-6 -7 5 8 0 1 4 -2 -5 0 1 1 -7 0

0 1 1 2 1 1 0 0 0 1
=>
1 2 1 0

1 0 6 0 7 0 -10 -9 -3 0 4
=>
1 0 6 0 7 0 -10 -9 -3 0 4

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

0 0 6 1 4 0 0 -10 0 1
=>
0 6 4 0 -10

1 0 0 -4 4 0 1 0 1 -2 8 8 0 1 -10 0 0 -2
=>
1 0 -4 4 0 1 0 1 -2 8 8 -10 0 -2

2 -2 0 -2 -10 1 1 -3 1
=>
2 -2 -2 -10 1 -3 1

0
=>


-7 1 0 0 -8
=>
-7 0 -8

1 -8 0 0 0
=>
1 -8 0

0 0 -7 2 -6 0 -6 1 9 -4 1 0 6 7 0 0 1 0 8 8
=>
0 -7 2 -6 0 -6 9 -4 1 0 6 7 0 1 0 8 8

-10 1 0 0 2 0 5 -10 1 1 0 1 10 2 0 0 0
=>
-10 0 2 0 5 -10 1 10 2 0

1 0 4 0 2 0 4 0
=>
1 0 4 0 2 0 4 0
Information
Author
PRO1
Language
Catalan
Official solutions
Unknown.
User solutions
C++