Buna! Ma puteti ajuta la problema asta? #1179 FListaInserare 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 natural, 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 inserare(nod * p, nod * q, int x); care inserează valoarea x după elementul cu adresa memorată în q din lista pentru care primul element are adresa memorată în pointerul p. 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. Mersi!
Răspunsuri la întrebare
Răspuns de
1
void inserare(nod * p,nod * q,int x)
{
nod* l=(nod*)malloc(sizeof(nod));
l->info=x;
l->urm=q->urm;
q->urm=l;
}
Se aloca pentru nodul nou spatiu in memorie( se poate face si cu functia new). I se atribuie valoare x dupa care se realizeaza legatura cu q. Prima data se face legatura cu urmatorul lui l pentru ca daca ultimele doua linii de cod s-ar inversa atunci q->urm fiind l , l ar arata spre el.
O problema mai practica ar fii sa adaugi o valoare dupa un nod cu o valoarea data de la tastura (fara sa-i stii adresa). Se face la fel, doar ca trebuie prima data cautat nodul respectiv pentru a se aplica algoritmul.
Alte întrebări interesante
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Limba română,
8 ani în urmă