Feu una funció recursiva tal que, donada una llista l passada com a paràmetre d’entrada i sortida (per referència) i un enter k, modifiqui la llista l de manera que totes les aparicions de k estiguin juntes a la llista, a partir del primer k que aparegui a l. Tingueu en compte que els altres elements de la llista que no són k han de quedar en el mateix ordre entre ells que a la llista original.
Us donem el programa principal, que agafa les dades del canal d’entrada, fa la crida a la funció que heu d’implementar, i
Entrada
Un enter k i una seqüència d’enters positius que representen una llista.
Sortida
Els elements de la llista original, de manera que tots els k que hi apareixien ara estan junts (adjacents) a partir del primer k que apareixia a la llista.
Els elements de la llista que no són k han de quedar en el mateix ordre entre ells que a la llista original.
Observació
Heu d’enviar el fitxer agrupa_k.cpp
amb la solució,
comprimit en un fitxer .tar:
tar cvf program.tar agrupa_k.cpp
Per a compilar us donem el Makefile
,
el programa principal program.cpp
,
la capçalera agrupa_k.hpp
i el fitxer utilitats.hpp
.
Input
4 1 2 4 3 4 4 5 6 4 7 8 4 9 4
Output
1 2 4 4 4 4 4 4 3 5 6 7 8 9
Input
2 1 2 3 4 5 6 7 2 2 2 2 2 2 2
Output
1 2 2 2 2 2 2 2 2 3 4 5 6 7