Implementeu una funció ITERATIVA que, donada una cua Q
com a paràmetre
(amb els valors ordenats, de cap a cua, potser amb repeticions),
retorna una cua R
que conté tots els valors
que hi ha a Q
en el mateix ordre i sense repeticions.
La funció és aquesta:
queue<int> uniq(queue<int> q);
Q
= [a1,a2, … ,an] i
∀i = 1n−1 ai ≤ ai+1.R
= [b1, b2, …, bm]
tal que ∀i = 1m bi < bi+1 i a més
∀i = 1n ai ∈ R
.
És a dir, R
conté tots els valors que hi ha a Q
sense repeticions i en el mateix ordre.Aquí tenim uns exemples de comportament de la funció:
uniq([1 2 2 2 3 5 5 5 5]) = [1 2 3 5] uniq([1 2 3 4]) = [1 2 3 4]
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 del problema.
Avaluació sobre 10 punts:
Coses que poden restar punts a la puntuació anterior:
Input/Output