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