Informatică, întrebare adresată de Mostesare, 9 ani în urmă

Se considera o lista liniara simplu inlntuita cu cel putin 4 elemente.

Fie p,q,r adresele a 3 noduri succesive din lista. Care dintre secventele de mai jos realizeaza stergerea corecta a nodului q?
a.
p^.urm:=r^.urm;
dispose(q);
b.
p^.urm:=r;
dispose(q);
c.
r^.urm:=p;
dispose(q);
d.
p^.urm:=r;


boiustef: aici e pascal...

Răspunsuri la întrebare

Răspuns de boiustef
1

Răspuns:

b) este corect

Explicație:

Dacă p, q, r sunt adresele a 3 noduri consecutive din listă, pentru a face legătura lui p cu r (pentru a sterge pe q) se poate cum e în punctul b) şi astfel:

p^.urm:=q^.urm; dipose(q);

in punctul a) se va perde legatura si cu nodul r, deoarece p se leaga cu urmatorul lui r, astfel ocolind nodurile q si r

punctul c) e gresit...

in punctul d) legatura e corecta ( se ocoleste nodul q ) doar ca nu se elibereaza memoria sterdand q.

Alte întrebări interesante