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 seus valors.
// 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 parells guardats a la seqüència. int sumOfPairValues(Item *pitem);
L’enunciat d’aquest exercici ja ofereix uns fitxers que haureu d’utilitzar per a compilar: Makefile, program.cpp, sumOfPairValues.hpp. Us falta crear el fitxer sumOfPairValues.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 sumOfPairValues.cpp
Entrada
L’entrada té un nombre arbitrari de casos. Cada cas consisteix en una línia amb una llista de valors enters.
Sortida
Per a cada cas, la sortida conté una línia amb la corresponent suma dels valors de la llista.
Input
6 7 5 3 5 6 9 1 2 7 0 9 6 0 6 2 6 1 8 9 2 0 2 3 5 9 2 8 9 7 3 6 1 2 9 3 1 4 8 4 5 0 3 6 1 0 6 3 0 6 1 5 5 4 6 5 6 3 7 2 5 4 7 4 4 3 0 7 8 8 8 4 3 4 9 2 0 6 8 9 2 6 6 9 5 0 4 8 1 7 2 7 2 6 1 0 6 1 9 4 9 0 9 1 7 1 1
Output
12 2 28 4 2 16 4 24 10 12 0 0 22 20 34 12 4 12 4 0
Input
1 2 3 4 5 6 7 8 9 0 0 1 3 5 7 9 3 7 1 5 2 3 4 6 7 8 1 2 4 5 7 8 0 1 3 5 7 9 2 4 6 8 0 2 2 2 2 2 2 2 2 3 2 2 2 2 2 2 2 2 0 1 0 1 0 1 0 1 0 1 0 1 0 1 2 2 4 4 6 6 8 8 2 2 4 4 6 6 8 8 1 3 6 0 1 2 4 5 6 8 9 0 1 3 4 5 6 7 9 0 1 2 3 4 5 1 6 8 8 0 8 5
Output
20 0 0 20 34 32 0 86 0 36 6 24