Se consideră o listă liniară simplu înlănțuită, alocată dinamic, în care elementele sunt de tipul declarat mai jos:
view source
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 sterge(nod * & p);
care elimină, dacă există, din lista pentru care primul element are adresa memorată în pointerul p toate elementele pare.
problema 1178 pbinfo
de preferabil cu explicatii
Răspunsuri la întrebare
Răspuns de
2
void sterge(nod * & p)
{
nod * t = p , * q;
while(t -> urm != NULL)
if( t -> urm -> info % 2 == 0)
{
q = t -> urm;
t -> urm = q -> urm;
delete q;
}
else
t = t -> urm;
if(p -> info % 2 == 0)
{
t = p;
p = p -> urm;
delete t;
}
}
Alte întrebări interesante
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă