Sunteți pe pagina 1din 2

Probleme cu liste alocate dinamic

1. Se consider o list liniar simplu nlnuit alocat dinamic, cu cel puin dou elemente. Fiecare
element al listei reine n cmpul urm adresa elementului urmtor din list sau NULL dac nu exist un element urmtor. while (...) p=p->urm; delete p->urm; p->urm=NULL; tiind c variabila p reine adresa primului element din list, care dintre expresiile urmtoare poate nlocui punctele de suspensie n secvena de instruciuni de mai sus astfel nct, n urma executrii acesteia, s fie eliminat ultimul element al listei? (4p.) a. p->urm->urm!=NULL b. p->urm!=NULL c. p!=NULL d. p->urm->urm==NULL

2. O list liniar simplu nlnuit cu cel puin dou elemente, alocat dinamic, reine n cmpul info
al fiecrui element cte un numr natural de maximum 4 cifre, iar n cmpul urm adresa elementului urmtor din list sau NULL dac nu exist un element urmtor. while (p->urm!=NULL) { if (p->urm->info<p->info) p->urm->info=p->info; p=p->urm;} cout<<p->info; Dac variabila p reine adresa primului element al listei atunci, n urma executrii secvenei de program de mai sus se afieaz ntotdeauna: (4p.) a. cea mai mic dintre valorile memorate de elementele din list b. cea mai mare dintre valorile memorate de elementele din list c. valoarea memorat de penultimul element din list d. valoarea memorat de primul element din list

3. ntr-o list liniar simplu nlnuit fiecare element reine n cmpul info o valoare ntreag, iar n
cmpul urm adresa elementului urmtor din list sau NULL dac nu exist un element urmtor. Variabila p reine adresa primului element din list. Lista conine, ncepnd de la primul element, n aceast ordine, valorile: 2, 3, 4, 5, 6, 7, 8. Ce se va afia n urma executrii secvenei de instruciuni alturate? (4p.) while((p->urm!=NULL)&&(p!=NULL)) { p->urm=p->urm->urm; p=p->urm; cout<<p->info<< ; } 4. ntr-o list liniar simplu nlnuit, fiecare element reine n cmpul inf un numr ntreg, iar n cmpul ref adresa urmtorului nod din list sau NULL n cazul ultimului nod al listei. Adresa primului element al listei este reinut n variabila prim, iar p este o variabil de acelai tip cu prim. Dac n list sunt memorate, n aceast ordine, numerele 1, 2, 3, 4, care va fi coninutul listei n urma executrii secvenei alturate de instruciuni? (4p.) p=prim->ref->ref; prim->ref->ref=p->ref; p->ref=prim->ref; prim->ref=p; a. 1 3 2 4 b. 1 2 4 3 c. 1 4 2 3 d. 1 4 3 2

5. O list liniar simplu nlnuit, alocat dinamic, memoreaz n cmpul ref al fiecrui nod adresa
urmtorului nod din list sau NULL n cazul n care nu exist un nod urmtor. Lista conine cel puin 5 noduri, adresa primului nod este memorat n variabila p, iar variabilele a i b sunt de acelai tip cu p. Adresa crui nod va fi memorat n variabila b, dup executarea secvenei alturate de program? (6p.) a=p; while (a->ref != NULL) { b=a a=a->ref;}

a. Nodul aflat n mijlocul listei b. Penultimul nod al listei c. Ultimul nod al listei d. Nodul al treilea din list

6. ntr-o list liniar simplu nlnuit, alocat dinamic, fiecare element reine n cmpul inf un numr
ntreg, iar n cmpul ref adresa urmtorului nod din list sau NULL n cazul ultimului element al listei. Adresa primului element al listei este reinut n variabila prim, iar variabila p este de acelai tip cu prim. Dac n list sunt memorate, n aceast ordine, numerele 3, 5, 18, 20, ce se va afia pe ecran n urma executrii secvenei alturate de program? (6p.) p=prim; while (p->ref!=NULL) { if (p->inf%5==0) s=s+p->inf; p=p->ref; } cout<<s; a. 21 b. 25 c. 5 d. 46 7. ntr-o list liniar simplu nlnuit, alocat dinamic, fiecare element reine n cmpul ref adresa urmtorului nod din list sau NULL n cazul ultimului element al listei, iar n cmpul inf un numr ntreg. Adresa primului element al listei este reinut n variabila prim, iar p este o variabil de acelai tip cu prim. Ce va afia pe ecran secvena alturat? (6p.) p=prim; while ((p->inf%2==0) && (p!=NULL)) p=p->ref; if (p!=NULL) cout<<(p->inf); else cout<<"NU"; a. Prima valoare impar din list, dac aceasta exist i NU n caz contrar. b. Prima valoare par din list, dac aceasta exist i NU n caz contrar. c. Toate valorile impare din list dac astfel de valori exist i NU n caz contrar. d. Toate valorile pare din list dac astfel de valori exist i NU n caz contrar. 8. Fiecare element al unei liste circulare, nevide, alocat dinamic, memoreaz n cmpul val o valoare ntreag, iar n cmpul adr adresa elementului urmtor. tiind c variabila p reine adresa unui element oarecare din list, iar variabila q este de acelai tip cu p, precizai care dintre urmtoarele variante tiprete toate elementele listei? (4p.) a. q=p; while(q!=p) {cout<<q->val; q=q->adr;} b. q=p; while(q->adr!=p){cout<<q->val; q=q->adr;} c. q=p; do{ cout<<q->val; q=q->adr; }while(q!=p); d. q=p->adr; while(q!=p) {cout<<q->val; q=q->adr;}
9. Fiecare element al unei liste liniare, simplu nlnuite, alocat dinamic, reine n cmpul nr un numr

ntreg, iar n cmpul adr adresa elementului urmtor din list. Dac p reine adresa primului element, iar lista are cel puin dou elemente, care dintre urmtoarele secvene de instruciuni copiaz n cmpul nr al celui de-al doilea element al listei, coninutul cmpului nr al primului element din list? (4p.) a. p->nr=p->adr->nr; b. p->adr=p->nr; c. p->adr->nr=p->nr; d. p->adr->adr->nr=p->nr;

S-ar putea să vă placă și