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; };
în care câmpul info
memorează un număr întreg, iar câmpul urm
memorează adresa următorului element al listei.
Cerința
Să se scrie o funcție C++ cu următorul prototip:
void sortareCrescator(nod *&prim)
care sortează crescător elementele listei al cărei prim element are adresa memorată în prim
.
Restricții și precizări
- numele funcției va fi
sortareCrescator
- lista va conține cel puțin
3
elemente
Exemplu:
Dacă lista este formată din valorile (5, 3, 9, 4, 2, 12)
, după apelul funcţiei ea va conţine elementele (2, 3, 4, 5, 9, 12)
.
void sortareCrescator(nod *&prim) { nod* pi = prim; nod* pj = prim; int aux; while (pi != NULL) { pj = pi -> urm; while (pj != NULL) { if ((pi -> info) > (pj -> info)) { aux = pi -> info; pi -> info = pj -> info; pj -> info = aux; } pj = pj -> urm; } pi = pi -> urm; } }