El conjunt diferència entre dos conjunts i , escrit , és el conjunt d’elements que pertanyen a però no pertanyen a .
Representem els conjunts
i
amb dues cues d’enters. Escriviu el codi del mètode
diferencia de la classe Cua que, donada una
cua d’enters, calcula la diferència entre la cua paràmetre implícit
(conjunt
)
i la cua donada per paràmetre (conjunt
),
i deixa el resultat en la cua paràmetre implícit. És a dir, la cua
paràmetre implícit passa a tenir els elements que tenia originalment,
excepte els que apareixen a la cua donada per paràmetre.
Les dues cues estan ordenades de forma creixent.
L’especificació d’aquest mètode és:
void diferencia(const Cua &q);
/* Pre : La cua p.i. esta ordenada de forma creixent, q esta ordenada de forma
creixent */
/* Post : La cua p.i. passa a tenir els elements que estaven al p.i original excepte
els que apareixen a q */L’entrada conté dues cues d’enters. Per cada cua hi ha el seu nombre d’enters () i els enters que la formen.
Per llegir les cues, s’ha utilitzat l’operador >>
que es troba definit a la classe Cua.
Com a sortida es mostren les dues cues d’entrada originals, seguides de la primera cua modificada amb el resultat de la diferència entre les dues cues.
Per escriure les cues, s’ha utilitzat l’operador
<< que es troba definit a la classe
Cua.
Feu la solució usant els atributs privats de la classe
Cua en lloc dels mètodes públics.
Heu d’enviar la solució comprimida en un fitxer .tar:
tar cvf program.tar cua_diferencia.cpp
Observeu que per compilar us donem el Makefile, la
classe Cua amb tots els seus mètodes implementats, excepte
diferencia, i el programa principal
program.cpp.
Input
3 1 2 3 3 1 4 5
Output
Cua 1: <1|2|3< Cua 2: <1|4|5< Estat final cua 1: <2|3<
Input
5 1 2 3 4 5 6 6 7 8 9 10 11
Output
Cua 1: <1|2|3|4|5< Cua 2: <6|7|8|9|10|11< Estat final cua 1: <1|2|3|4|5<
Input
4 1 3 5 7 8 0 1 2 3 5 6 7 8
Output
Cua 1: <1|3|5|7< Cua 2: <0|1|2|3|5|6|7|8< Estat final cua 1: <<