Donada la classe Llista que permet guardar seqüències
ordenades d’enters amb una llista doblement encadenada, sense fantasma,
no circular i amb punt d’interès, cal implementar el mètode
void moure_x_darrera(const int &x);
/* Pre: El p.i. es una llista L i i el seu punt d'interes
referencia a la dreta del tot */
/* Post: El p.i. s'ha modificat movent totes les aparicions
d'x al final, mantenint la resta d'elements en el seu
ordre; el punt d'interes referencia la primera aparicio d'x,
si hi era, altrament el punt d'interes no canvia */que desplaça tots els elements iguals a de la llista paràmetre implícit al final, mantenint l’ordre de la resta d’elements de la llista. Si la llista conté algun element igual a , el punt d’interès referencia a la primera aparició de dins la llista; altrament, el punt d’interès no canvia.
Els nodes de la classe Llista estan doblement encadenats
amb punters al següent (seg) i a l’anterior
(ant). Una llista té quatre atributs: la
longitud i tres punters a nodes, un pel primer element
(primer_node), un per l’últim (ultim_node) i
un altre per l’element actual (act), on tenim situat el
punt d’interès de la llista.
Com a entrada hi haurà una llista, amb el punt d’interès situat a la dreta de tot, i a continuació hi haurà un o més enters addicionals. Per l’entrada de la llista es donen el nombre d’enters de la llista i els enters que la formen.
Per llegir les llistes, s’ha utilitzat l’operador
>> que es troba definit a la classe
Llista.
Com a sortida es mostrarà la llista original. A continuació, per cada enter addicional, es desplaçaran els elements iguals a al final de la llista i es mostrarà la llista resultant. D’un enter al següent, s’usarà la llista modificada en el pas anterior.
Per escriure una llista, es recorren i mostren els seus elements del
primer a l’últim, i després de l’últim al primer. L’element referenciat
pel punt d’interès, en cas que n’hi hagi, apareix entre parèntesis. Per
escriure les llistes, s’ha utilitzat l’operador <<
que es troba definit a la classe Llista.
Feu la solució usant els atributs privats de la classe
Llista en lloc dels mètodes públics.
Heu d’enviar la solució comprimida en un fitxer .tar:
tar cvf program.tar llista_moure_x_darrera.cpp
Observeu que per compilar us donem el Makefile, la
classe Llista amb tots els seus mètodes implementats
excepte moure_x_darrera i el programa principal
program.cpp.
Autoria: Neus Català
Generació: 2026-01-25T21:03:03.556Z
© Jutge.org, 2006–2026.
https://jutge.org