Se consideră o listă liniară dublu înlănțuită, alocată dinamic, în care elementele sunt de tipul declarat mai jos:
struct nod{ int info; nod * ant,*urm; };
în care câmpul info
memorează un număr întreg, câmpul ant
memorează adresa elementului anterior al listei, iar campul urm
memorează adresa elementului următor al listei.
Cerința
Să se scrie o funcție C++ cu următorul prototip:
void InserareDupaQ(nod *& prim,nod *& ultim, nod * q,int x);
care adaugă valoarea x
după nodul de adresă q
al listei pentru care primul element are adresa memorată în pointerul prim
si ultimul element are adresa memorata in pointerul ultim
.
Restricții și precizări
- numele funcției va fi
InserareDupaQ
; - pointerul
q
poate fiprim
siultim
; - dacă lista nu conține niciun element, pointerii
prim
siultim
vor avea valoareaNULL
; - în toate cazurile, la ieșirea din apel
prim
va memora adresa primului element al listei, iarultim
va memora adresa ultimului element al listei.
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.