fbpx

Problema #1476 – FSortare – Rezolvari PBInfo

de Mihai-Alexandru

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;
    }
}
Comentarii

S-ar putea sa iti placa