Se consideră o listă liniară simplu înlănţuită alocată dinamic, cu cel puţin două elemente. Fiecare element al listei reţine în câmpul urm
adresa elementului următor din listă sau NULL
dacă nu există un element următor.
Ştiind că variabila p
reţine adresa primului element din listă, care dintre expresiile următoare poate înlocui punctele de suspensie în secvenţa de instrucţiuni de mai jos astfel încât, în urma executării acesteia, să fie eliminat ultimul element al listei?
while (...) p=p->urm; delete p->urm; p->urm=NULL;
Varianta 1 |
|
Varianta 2 |
|
Varianta 3 |
|
Varianta 4 |
|
O listă liniară simplu înlănţuită cu cel puţin două elemente, alocată dinamic, reţine în câmpul info
al fiecărui element câte un număr natural de maximum 4
cifre, iar în câmpul urm
adresa elementului următor din listă sau NULL
dacă nu există un element următor.
while (p->urm!=NULL) { if (p->urm->info<p->info) p->urm->info=p->info; p=p->urm; } cout<<p->info;
Dacă variabila p
reţine adresa primului element al listei atunci, în urma executării secvenţei de program de mai sus se afişează întotdeauna:
Varianta 1 |
cea mai mică dintre valorile memorate de elementele din listă |
Varianta 2 |
cea mai mare dintre valorile memorate de elementele din listă |
Varianta 3 |
valoarea memorată de penultimul element din listă |
Varianta 4 |
valoarea memorată de primul element din listă |
Într-o listă liniară simplu înlănţuită, alocată dinamic, fiecare element reţine în câmpul info
o valoare întreagă, iar în câmpul urm
adresa elementului următor din listă sau NULL
dacă nu există un element următor. Variabila p
reţine adresa primului element din listă.
Lista conţine, în această ordine, pornind de la primul element, valorile: 2
, 3
, 4
, 5
, 6
, 7
, 8
. Ce se va afişa în urma executării secvenţei de instrucţiuni de mai jos?
while(p!=NULL && p->urm!=NULL) { cout<<p->info; p->urm=p->urm->urm; p=p->urm; }
Varianta 1 |
|
Varianta 2 |
|
Varianta 3 |
|
Varianta 4 |
|
Într-o listă liniară simplu înlănţuită, alocată dinamic, fiecare element reţine în câmpul info
o valoare întreagă, iar în câmpul urm
adresa elementului următor din listă sau NULL
dacă nu există un element următor. Variabila p
reţine adresa primului element din listă.
Lista conţine, în această ordine, pornind de la primul element, valorile: 2
, 3
, 4
, 5
, 6
, 7
, 8
. Ce se va afişa în urma executării secvenţei de instrucţiuni de mai jos?
while(p!=NULL && p->urm!=NULL) { p->urm=p->urm->urm; p=p->urm; cout<<p->info<<' '; }
Varianta 1 |
|
Varianta 2 |
|
Varianta 3 |
|
Varianta 4 |
|
Într-o listă liniară simplu înlănţuită, alocată dinamic, fiecare element reţine în câmpul inf
un număr întreg, iar în câmpul urm
adresa următorului nod din listă sau NULL
în cazul ultimului nod al listei.
Adresa primului element al listei este reţinută în variabila prim
, iar p
este o variabilă de acelaşi tip cu prim
. Dacă în listă sunt memorate, în această ordine,
numerele 1
, 2
, 3
, 4
care va fi conţinutul listei în urma executării secvenţei de instrucţiuni de mai jos?
p=prim; prim=p->urm; p->urm=NULL; prim->urm->urm->urm=p;
Varianta 1 |
1 3 2 4 |
Varianta 2 |
2 3 4 1 |
Varianta 3 |
4 1 2 3 |
Varianta 4 |
1 4 3 2 |
O listă liniară simplu înlănţuită, alocată dinamic, memorează în câmpul ref
al fiecărui nod adresa următorului nod din listă sau NULL
în cazul în care nu există un nod următor. Lista conţine cel puţin 5
noduri, adresa primului nod este memorată în variabila p
, iar variabilele a
şi b
sunt de acelaşi tip cu p
. Adresa cărui nod va fi memorată în variabila b
, după executarea secvenţei de program de mai jos?
a=p; while (a->ref != NULL) { b=a; a=a->ref; }
Varianta 1 |
Nodul aflat în mijlocul listei |
Varianta 2 |
Penultimul nod al listei |
Varianta 3 |
Ultimul nod al listei |
Varianta 4 |
Nodul al treilea din listă |
Într-o listă liniară simplu înlănţuită, alocată dinamic, fiecare element reţine în câmpul inf
un număr întreg, iar în câmpul ref
adresa următorului nod din listă sau NULL
în cazul ultimului element al listei.
Adresa primului element al listei este reţinută în variabila prim
, iar variabila p
este de acelaşi tip cu prim
. Dacă în listă sunt memorate, în această ordine, numerele 3
, 5
, 18
, 20
, ce se va afişa pe ecran în urma executării secvenţei de program de mai jos?
p=prim; s=0; while (p->ref!=NULL) { if (p->inf%5==0) s=s+p->inf; p=p->ref; } cout<<s;
Varianta 1 |
21 |
Varianta 2 |
25 |
Varianta 3 |
5 |
Varianta 4 |
46 |
Într-o listă liniară simplu înlănţuită, alocată dinamic, fiecare element reţine în câmpul ref
adresa următorului nod din listă sau NULL
în cazul ultimului element al listei, iar în câmpul inf
un număr întreg.
Adresa primului element al listei este reţinută în variabila prim
, iar p
este o variabilă de acelaşi tip cu prim
. Ce se va afişa pe ecran în urma executării secvenţei de program de mai jos?
p=prim; while ((p->inf%2==0) && (p!=NULL)) p=p->ref; if (p!=NULL) cout<<(p->inf); else cout<<"NU";
Varianta 1 |
Prima valoare impară din listă, dacă aceasta există şi NU în caz contrar. |
Varianta 2 |
Prima valoare pară din listă, dacă aceasta există şi NU în caz contrar. |
Varianta 3 |
Toate valorile impare din listă dacă astfel de valori există şi NU în caz contrar. |
Varianta 4 |
Toate valorile pare din listă dacă astfel de valori există şi NU în caz contrar. |
Într-o listă liniară simplu înlănţuită, alocată dinamic, fiecare element memorează în câmpul nr
un număr întreg, iar în câmpul urm
adresa elementului următor din listă sau valoarea NULL
dacă nu există un element următor. Lista conţine exact trei elemente ale căror adrese sunt memorate în variabilele p
, q
şi r
. Ştiind că p->nr==1
, q->nr==2
, r->nr==3
, p->urm!=NULL
şi r->urm==q
, care este ordinea numerelor din listă?
Varianta 1 |
1 3 2 |
Varianta 2 |
1 2 3 |
Varianta 3 |
2 1 3 |
Varianta 4 |
3 2 1 |
Fiecare element al unei liste circulare, simplu înlănţuită, nevidă, alocată dinamic, memorează în câmpul val
o valoare întreagă, iar în câmpul adr
adresa elementului următor din listă.
Ştiind că variabila p
reţine adresa unui element oarecare din listă, iar variabila q
este de acelaşi tip cu p
, precizaţi care dintre următoarele secvenţe de program afişează, în urma executării, toate valorile memorate de elementele listei?
Varianta 1 |
q=p; while(q!=p) {cout<<q->val; q=q->adr;} |
Varianta 2 |
q=p; while(q->adr!=p){cout<<q->val; q=q->adr;} |
Varianta 3 |
q=p; do{ cout<<q->val; q=q->adr; }while(q!=p); |
Varianta 4 |
q=p->adr; while(q!=p) {cout<<q->val; q=q->adr;} |