Sunteți pe pagina 1din 7

STRUCTURI DE DATE

Aveti aici intrebarile la structuri de date din vara ce au cazut la licenta, extrase din cele 23 de teste postate aici. Sunt in format word si complet editabile.

1. Se considera lista circulara simplu inlantuita ce contine celulele cu numerele 1, 2, 3, 4 (in aceasta ordine). Fiecare element memoreaza in campul INF un numar intreg, iar in campul ADR adresa elementului urmator din lista.Variabila START indica nodul ce contine numarul 1. Definim prin trecere prelucrarea realizata prin secventa urmatoare: p = START; do { if (p->INF > START->INF) p->INF = p->INF -1; p = p -> ADR; } while (p != START); Cate treceri sunt necesare pentru ca toate elementele din lista sa ajunga egale? R: 3 2. Fie A un arbore oarecare. Denim nivelul unui nod recursin astfel: - Nivelul nodului rdcin este 1: - Nivelul oricrui nod diferit de nodul rdcin este cu unu mai mare decat nivelul tatalui su. Notm cu n(x) nivelul nodului etichetat prin x. nalimea arborelui este maximum dintre nivelele nodurilor terminale. Notrn cu h(A) inlimea arborelui A. Fie arborele:

STRUCTURI DE DATE

i S = n(5)+n(10)+h(A). Atunci S = R: 11 3. Intr-o lista simplu inlantuita, alocata dinamic, fiecare element retine in campul URM adresa urmatorului nod din lista, iar in campul NR un numar intreg. Adresa primului element al listei este memorata in variabila START. Se stie ca lista are cel putin 3 noduri. Care dintre urmatoarele secvente de instructiuni elimina corect penultimul element al listei? R: { p = START; while (p->URM->URM->URM) p = p->URM; p->URM=p->URM->URM; } 4. Se considera o coada in care initial au fost introduse, in aceasta ordine, elementele care stocheaza numerele 150 si 201. Daca se noteaza cu INS(x) operatia prin care se adauga un element cu informatia x in coada, si cu REM() operatia prin care se elimina un element din coada, sa se precizeze rezultatul executarii secventei urmatoare: { REM(); INS(314) ; REM(); INS(437) ; INS(521) ; } R: 314, 437, 521 5. Intr-o lista circulara simplu inlantuita, U este adresa unui nod din lista si campul LEG memoreaza pentru fiecare nod adresa nodului urmator din lista. Pentru a numara elementele listei se utilizeaza secventa (variabila V este de acelasi tip cu variabila U): R: V = U; k = 1; while (V -> next != U) { k++; V = V -> next;

STRUCTURI DE DATE } 6. Explorarea unui arbore oarecare in lime utilizeaz o structur de date de tip : R: FIFO 7. In lista circulara simplu inlantuita ce contine numerele 1, 2, 3, 2, 3 in aceasta ordine, iar U este adresa nodului ce contine primul numar 2 (fiecare nod are un camp INF ce contine un numar intreg si un camp ADR care indica adresa elementului urmator in lista). Prin executarea secventei while (U -> INF > 0) { U -> INF = U -> INF -1; U = U -> ADR; } continutul listei, citit de la adresa de start va fi: R: 0, 1, 0, 1, 0 8. Se considera o stiva in care initial au fost introduse, in aceasta ordine, valorile 101 si 253. Daca se noteaza cu PUSH(x). operatia prin care se insereaza valoarea x in varful stivei si POP() operatia prin care se extrage elementul din varful stivei, care este continutul stivei in urma secventei de apeluri: { POP(); PUSH(312); POP(); PUSH(435); PUSH(537); } R: 537 435 101 9. Intr-o lista liniara simplu inlantuita, fiecare element retine in campul LEG adresa urmatorului nod din lista, iar in campul INF un numar intreg. Adresa primului element al listei este retinuta in variabila U. Daca in lista sunt memorate, in aceasta ordine, numerele: 52, 97, 31, si 56 (56 fiind ultimul element), in urma executarii secventei de instructiuni (U indica, initial, nodul cu numarul 52: { V = U -> LEG -> LEG; U->LEG -> LEG = V -> LEG; V->LEG = U -> urm; U -> LEG = V; } in lista vor fi in ordine numerele: R: 52, 31, 97, 56 10. Intr-o lista liniara, simplu inlantuita, alocata dinamic, fiecare element retine in campul LEG adresa urmatorului nod din lista, iar in campul NR in numar intreg. Adresa primului element al listei este memorata in variabila START. Lista contine cel putin 3 noduri. Care este efectul executarii urmatoarei secvente de program

STRUCTURI DE DATE { U = START; V = U->LEG -> LEG ; while ( V-> LEG ) { U = U->LEG ; V = V-> LEG ; } U -> LEG = V; } R: Eliminarea penultimei celule 11. Se consider o stiv implementat prin intermediul tabloului unidimensional A cu elementele A [ 0] = 0, A [ 1] = 10, A [ 2 ] = 20, A [ 3 ] = 30, A [ 4 ] = 40, A [ 5 ] = 50. Dac cel de-al doilea element: incepnd de la baza stivei este 10 atunci primul element care iese din stiv este: R: a[5] 12. Se considera ca variabilele U si V memoreaza adresa primului, respectiv ultimului element al unei liste liniare nevide dublu inlantuite. Elementele listei retin in campul NXT adresa elementului urmator, iar in campul BCK adresa elementului anterior. Stabiliti care este numarul de noduri din lista daca U -> NXT -> NXT si V -> BCK -> BCK indica acelasi nod al listei. R: 5 13. Fiecare element al unei liste liniare simplu inlantuite alocata dinamic retine in campul LEG adresa elementului urmator din lista. Daca U retine adresa primului element, iar lista are cel putin doua elemente, care dintre urmatoarele secvente de instructiuni realizeaza stergerea celui de-al doilea element al listei? R: V = U->adru; U->LEG = V -> LEG; free(V); 14. Intr-o lista dublu inlantuita care incepe cu elementul memorat la adresa U si contine cel putin 4 elemente, fiecare element retine in campul FWD adresa elementului urmator, in campul BCK adresa elementului precedent, iar in campul NR o valoare intreaga. Care dintre urmatoarele variante tipareste valoarea celui de-al treilea element al listei? R: printf (%d , U->FWD -> FWD -> FWD -> BCK -> NR);

STRUCTURI DE DATE 15. Fie secvena de cod #inc1ude<stdio.h> struct node{ int data; struct node *right, *1eft; } *root, *p, *q; void h (struct node *r){ if(r!=NULL) { h (r->1eft); h (r->right); printf ("\ t %d" , r->data); } } Funcia h implementeaz o metod pentru: R: Explorarea in postordine a arborelui cu radacina r 16. Fie arborele binar:

Prin explorarea n postordine a arborelui se obine urmtoarea list de numere R: 21, 26, 32, 25, 52, 41, 83, 95, 92, 91, 76, 38 17. Se consider arborele binar:

STRUCTURI DE DATE i secvena: parcurgerii arborelui: R: in preordine Aceasta reprezint rezultatul

18. Intr-o lista simplu inlantuita, cu cel putin 4 celule, fiecare celula retine in campul LEG adresa urmatoarei celule din lista. Daca U, V si W sunt adresele a trei celule din lista astfel incat: U -> LEG == V -> LEG -> LEG si W->LEG == V, atunci ordinea logica a celulelor in lista (celulele fiind identificate prin adrese) este: R: W, V, U 19. Se considera o lista circulara cu 8 elemente numerotate cu 1, 2, 3, 4, 5, 6, 7, 8. Mai intai se elimina elementul numerotat cu 3, apoi se elimina fiecare al treilea element din lista, numararea continuandu-se cu succesorul elementului eliminat, pana cand lista va mai contine un singur element. Care va fi numarul de ordine al elementului ramas? R: 7 20. Se consider arborele:

Care este numrul care apare n mijlocul irului rezultat prin explorarea n preordine a acestui arbore? R: 44 21. Intr-o lista circulara simplu inlantuita alocata dinamic cu cel putin un element, fiecare element retine in campul INF un numar intreg si in campul ADR adresa urmatorului element din lista. Stiind ca variabila U retine adresa unui element din lista si variabila V este de acelasi tip cu U, stabiliti care dintre urmatoarele secvente afiseaza toate valorile memorate in nodurile listei, fiecare valoare fiind afisata exact odata. R: V = U; do{ printf(%d , V -> INF;} V = V->ADR; } while(V != U); 22. Se consider arborele oarecare:

STRUCTURI DE DATE

Prin explorarea n adncime. cu vizitarea nti a descendenilor i apoi a rdcinii, se obine secvena: R: K, B, H, I, J, C, E, G, F, D, A

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