Sunteți pe pagina 1din 2

Data: __________ Nume____________________________Grupa_________

G4. Fie o LLSI cu urmatoarea structura a elementelor :


struct nod{int val ; nod *leg ;}*cap,*p;
Lista contine 100 de valori intregi, sortate crescator.
Ce ace unctia urmatoare!
nod* f(nod *cap){
nod *p;
for(p=cap;p->leg; p=p->leg)
if (cap->val > p->val) cout << p->val;
return p; }
A. Afiseaza lista B. Afiseaza lista si returneaza
pointer la ultimul element
C. returneaza pointer la primul
element
D. returneaza pointer la
ultimul element
G5. Fie urmatoarele declaratii glo"ale, olosite pentru a implementa o stiva:
int St[10];int vf=-1;
Ce se va aisa dupa urmatoarea secventa:
for(i=1;i<=;i!!) pu"#(i);
$#ile (%i"&'pt(()){
cout << pop();
if (pop())* == 0)
if (%i"&'pt(()) pop();
}
A. 742 B. 7
C. 7531 D. 642
G6. Care din urmatoarele declaratii poate repe#enta un nod a unei liste liniare dublu
inlantuite!
A. struct nod{
int x;
int *p,*q;
};
B. struct nod{
int p,q,v;
nod *p,*q;
};
C. struct nod{
int val;
nod *leg;
};
D. struct nod{
nod x;
nod *leg,;
};
G7. Fie graul dat de urmatoarea matrice de adiacenta:
0 1 1 0
1 0 0 0
1 0 0 0
0 0 0 0
Care dintre urmatoarele airmatii sunt false!
A. Graful are doua componente
conexe
B. Graful are un varf izolat
C. Graful este arbore D. Graful nu este conex
G8. $vem de sortat un vector de ma%im 10000 de numere intregi cu distri"utie
aleatoare. Cea mai rapida metoda de sortare este:
A. BubbleSort B. Sortare prin numarare
C. Cautarea binara D. Heapsort
G1. Fie unctia:
int f(int x, int y){
if (x*y>0) return (x%10)*(y%10)*f(x/10,y/10);
else return 1;
}
Ce valoare are f(123,2114&!
A. 48 B.24 C. Bucla infinita D. 123
G2. Fie urmatoarea deinitie:
template <class T>
T f(T a, T b)
{T t; t=a;a=b;b=t; return a;}
Ce aisea#a secventa urmatoare!
int a=2,b=5;
cout << f(a,b);
cout<<a<<b;
A. da eroare B. 525
C. 225 D. 552
G3. Se da un ar"ore de cautare. Care dintre urmatoarele airmatii este FALSA !
A. Adancimea unui arbore binar
de cautare echilibrat este log2n
B. Valoarea din radacina este
mai mare decat fiul stang
C. Parcurgerea in inordine va
da elementele in ordine
crescatoare
D. Fiecare nod are exact doi
descendenti
G9. Intr'u ar"ore "inar de cautare vid se adauga, in aceasta ordine, valorile:
+ * , - . 1 / 0
(ectorul de tati corespun#ator va i:
A. 2 5 2 3 0 7 8 9 5 B. 4 1 4 5 0 7 8 5 8
C. 2 5 2 3 0 9 8 7 5 D. 0 5 2 3 0 7 0 9 0
G10. Fie urmatorul vector, repre#entand un )eap intr'o etapa din cadrul metodei de
sortare *eapSort:
9 5 8 4 1 7 6 2 3 0
Dupa intersc)im"are si apelul unctiei RefaHeap vom avea:
A. 8 5 7 4 1 3 6 2 0 B. 8 5 7 4 1 0 6 2 3
C. Vectorul initial nu e heap D. 8 7 6 5 4 3 2 1 0
G11. Fie unctia de dispersie #(1)=1)+
+emorarea valorilor in ta"ela se ace olosind , liste liniare simpu inlantuite,
cap[#[2]] iind un pointer la inceputul listei corespun#atoare valorii 2.
Care din urmatoarele liste de valori vor da cea mai -rumoasa-distri"utie a valorilor!
A. 1 2 55 60 70 6 7 B. 10 20 30 40 50
C. 16 22 88 19 35 1 3 D. 31 13 18 36 6 16
G12. Fie declaratiile:
int a[10]={0313*313*3/3*3/30}3 n=,;
int ct[10]={0303030303030303030};
Ce se aisea#a in urma e%ecutiei secventei:
for(i=0;i<n;i!!) ct[a[i]]!!;
for(i=0;i<10;i!!) if (ct[i]==0) cout << i;
A. 0 1 2 3 4 B. 0 1 2 3 4 5 6 7 8 9
C. 5 6 7 8 9 D. 1 2 3 2 1 0 0 0 0 0
P1 Scrieti o unctie generica .template& care aisea#a, in ordine inersa, un vector
primit ca parametru. Functia are ca parametri un vector cu elemente de un tip oarecare
si un intreg repre#entand lungimea acestuia.
P2. Scrieti structura unui nod si unctia de adaugare la sarsit intr'o lista liniara du"lu
inlantuita. Se presupune ca avem elemente in lista.
P3. +ergeSort
!bseratie
Fiecare grila este notata cu ,p. / singura varianta este corecta.
Fiecare pro"lema este notata cu 10p.
Se dau 10p din oiciu.
0entru nota de trecere: minim 10p din pro"leme si minim 1,p in total.
"e#olare $rila
1 7
2 8
3 9
4 10
5 11
6 12