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 FLdiAdDupa(nod *&prim, nod *&ultim, int x)
Primul nod are adresa memorată în pointerul prim
si ultimul nod are adresa memorata in pointerul ultim
. Lista conține cel puțin un nod. Funcția va insera după nodul care memorează informația minimă un nou nod care va reține valoarea x
. Informațiile din noduri sunt distincte, deci va exista un singur nod cu informația minimă. De exemplu, dacă lista reține valorile 5,3,6,2,8
, atunci după apelul FLdiAdDupa(prim, ultim, 100)
, lista va fi 5,3,6,2,100,8
.
Restricții și precizări
- numele funcției va fi
FLdiAdDupa
- lista inițială conține cel puțin un nod
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.