Esborrar primer parell de llista dinàmica

PRELIMINARS

En aquest exercici considerem la classe Llista que permet guardar
seqüències ordenades d’enters positius amb una llista doblement
encadenada, sense fantasma, no circular i amb punt d’interès.

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.

EXERCICI

Cal implementar un mètode que elimina de la llista el primer valor
parell que hi hagi, si n’hi ha algun, i manté el punt d’interés, excepte
si el punt d’interés era l’element esborrat, cas en el qual deixarà
d’haver-hi punt d’interés. Aquesta és la capcelera:

    void esborrar_primer_parell();
     /* Pre: El p.i. es una llista L */
     /* Post: El p.i. s'ha modificat eliminant el seu primer valor parell.
              Si no hi havia cap parell a la llista, llavors no s'ha esborrat res.
              El punt d'interes no canvia excepte si l'element esborrat era el
              punt d'interés, cas en el qual el punt d'interés passa a ser NULL */

Aquí hi ha un exemple de llista abans i després d’executar el seu mètode
esborrar_primer_parell.

    1 5 2 (8) 3 6
    =>
    1 5 (8) 3 6

Fixeu-vos que l’enunciat d’aquest exercici ja ofereix uns fitxers que
haureu d’utilitzar per a compilar:
Makefile, program.cpp, llista.hpp, llista.cpp. Us falta crear el fitxer
llista_esborra_primer_parell.cpp i implementar-hi la funció anterior.
Quan pugeu la vostra solució al jutge, només cal que pugeu un tar
construït així:

    tar cf solution.tar llista_esborra_primer_parell.cpp

Entrada

L’entrada té un nombre arbitrari de casos. Cada cas consisteix en una
llista amb punt d’interès: el nombre de vegades que cal avançar el punt
d’interès respecte el primer element, el nombre d’enters positius de la
llista i els enters positius que la formen. Fixeu-vos en que el programa
que us oferim ja s’encarrega de llegir aquestes entrades. Només cal que
implementeu el mètode abans esmentat.

Sortida

Per a cada cas, es mostrarà la llista original i la llista modificada
(per l’acció d’esborrar el primer parell) dos cops, recorrent-la del
primer a l’últim i recorrent-la de l’últim al primer. Fixeu-vos en que
el programa que us oferim ja s’encarrega d’escriure aquestes sortides.
Només cal que implementeu la funció abans esmentada.

Informació del problema

Autoria: PRO1

Generació: 2026-01-25T21:30:20.488Z

© Jutge.org, 2006–2026.
https://jutge.org
