Preliminars
En aquest exercici treballarem sobre la següent estructura de dades, que ens serveix per a mantenir una seqüència de valors dins de items encadenats mitjançant punters.
struct Item {
int value;
Item* next;
};
Exercici
Implementeu una funció RECURSIVA que,
donat un Item* que apunta a una seqüència
d’items encadenats, retorna la suma dels valors dels items a posició
parell. Sobre-entenem que el primer item accessible està a posició 0, el
seu next a posició 1, el següent
next a posició 2, i així successivament.
// Pre: pitem apunta al primer element d'una seqüència correcta d'items encadenats.
// L'últim element de la seqüència apunta a NULL. El propi pitem podria ser NULL,
// cas en el qual no hi hauria elements a la seqüència.
// Post: retorna la suma dels valors guardats en els items a posició parell en la seqüència.
int sumOfValuesEvenPosition(Item *pitem);
Aquí tenim un exemple de paràmetres entrada i sortida de la funció:
sumOfValues([3]->[2]->[5]->[1]->[8]->NULL) = 16
Fixeu-vos que l’enunciat d’aquest exercici ja ofereix uns fitxers que
haureu d’utilitzar per a compilar:
Makefile, program.cpp, sumOfValuesEvenPosition.hpp.
Us falta crear el fitxer
sumOfValuesEvenPosition.cpp amb els
corresponents includes 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 sumOfValuesEvenPosition.cpp
L’entrada té un nombre arbitrari de casos. Cada cas consisteix en una línia amb una llista de valors enters. Fixeu-vos en que el programa que us oferim ja s’encarrega de llegir aquestes entrades. Només cal que implementeu la funció abans esmentada.
Per a cada cas, la sortida conté una línia amb la corresponent suma dels valors de la llista a posició parell. Fixeu-vos en que el programa que us oferim ja s’encarrega d’escriure aquestes dades. Només cal que implementeu la funció abans esmentada.
Autoria: PRO1
Generació: 2026-01-25T21:10:17.664Z
© Jutge.org, 2006–2026.
https://jutge.org