Se consideră o listă liniară simplu înlănțuită, alocată dinamic, în care elementele sunt de tipul declarat mai jos:
struct Nod
{
int coef;
int expo;
Nod *leg;
};
în care câmpurile coef și expo memorează coeficientul și respectiv exponentul unui monom al unui polinom, iar câmpul leg memorează adresa următorului element al listei. Dorim să memorăm polinoame de forma P(x) = 12•x6 + 10•x4 + 30 și în acest caz lista va conține trei noduri, primul nod reținând coeficientul 12 și exponentul 6, al doilea nod coeficientul 10 și exponentul 4, iar ultimul nod, coeficientul 30 și exponentul 0.
Cerinţa
Să se scrie o funcție C++ cu următorul prototip:
long long FLsiPoli(Nod *head, int val);
Lista are cel puțin un nod și are adresa primului element memorată în pointerul head. Funcția va returna valoarea polinomului în punctul val. Pentru exemplul de mai sus, dacă val = 2, atunci P(2) = 12•26 + 10•24 + 30 = 958.
Important
Soluţia propusă va conţine definiţia funcţiei cerute. Prezenţa în soluţie a altor instrucţiuni poate duce erori de compilare sau de execuţie care vor avea ca efect depunctarea soluţiei.