Rezolvare PBinfo #3801

Decorative Icon Problema: LsiInterclasare / 3801

Decorative IconAutor: Andrei

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 *leg;
};

Câmpul info memorează un număr întreg, iar câmpul leg memorează adresa următorului element al listei.

Cerinţa

Se dau două liste în care informațiile sunt ordonate crescător. Adresele celor două liste sunt memorate în pointerii h1 și h2. Să se scrie o funcție C++ cu următorul antet:

void LsiInterclasare(Nod *h1, Nod *h2, Nod *&h)

care interclasează nodurile într-o nouă listă de adresă h și care are de asemenea informațiile ordonate crescător. Atenție la faptul că nu puteți să ștergeți și să creați noi noduri, ci numai să schimbați legăturile nodurilor. Dacă există noduri de informație identică în ambele liste, mai întâi se va depune în h nodul din h1.

Restricţii şi precizări
  • cele două liste inițiale conțin fiecare cel puțin un nod
  • la ieșirea din apel h va memora adresa primului element al listei interclasate
Exemplu:

Dacă h1 = 2,7,7,10,20 și h2 = 1,1,7,9,20,25,30, atunci după apelul funcției h = 1,1,2,7,7,7,9,10,20,20,25,30. Rețineți că mai întâi s-au depus în h nodurile de informație 7 din prima listă, apoi din a doua.

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.

Decorative Icon Explică rezolvarea folosind Inteligența Artificială

Folosește modelul nostru de AI special antrenament pentru a rezolva problemele de pe PBinfo! În baza creditelor AI primești explicații pentru probleme, pe care le alegi și le rulezi exact atunci când dorești, la un singur click distanță! Află mai multe informații:

👉 Achiziționează credite AI
Andrei Frîntu
Andrei Frîntu

Fondatorul platformei - mentor Academia

LinkedIn Instagram GitHub
© Copyright 2026 - CodulLuiAndrei.ro - Toate drepturile sunt rezervate