Se consideră o listă liniară simplu înlănțuită, alocată dinamic, în care elementele sunt de tipul declarat mai jos:
struct nod { int info; nod *urm; };
Câmpul info
memorează un număr întreg, iar câmpul urm
memorează adresa următorului element al listei.
Cerinţa
Se dă o listă care conține cel puțin un nod. Adresa listei este memorată în pointerul head
. Să se scrie o funcție C++ cu următorul antet:
void EraseThird(nod *head)
Funcția va șterge din lista simplu înlănțuită fiecare al treilea nod.
Restricţii şi precizări
- Lista conține inițial cel puțin un nod. Dacă lista are mai puțin de trei noduri, atunci nu se va șterge niciun nod.
Exemplu:
Dacă head = 1,2,3,4,5,6,7,8,9,10
, atunci după apelul funcției head = 1,2,4,5,7,8,10
.
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.