DATA STRUCTURES test nr. 16
- Pentru solutionarea problemei privind migratia populatiei intre judetele tarii se utilizeaza:
a) o matrice rara pentru ca exista numeroase perechi(judet_plecare, judet_sosire) unde nu se inregistreaza deplasari de persoane
b) o matrice completa pentru ca dimensiunile sunt 40 linii si 40 coloane
c) o structura de date statica pentru ca se stie volumul de date care se stocheaza
d) o matrice rara cu 40*40 elemente
e) clasa matrice
- Pentru calculul salariilor intr-o companie, datele se stocheaza intr-un fisier secvential pentru ca:
a) descrierea persoanelor se efectueaza dupa un sablon unic, inregistrarile in fisier fiind de lungime fixa
b) numarul de articole din fisier se schimba putin
c) statul de functiuni presupune referirea tuturor articolelor din fisierul secvential sortat
d) datele din fisier se introduc secvential si se valideaza la introducere
e) din informatiile utile ale fisierului secvential se creaza orice alta structura de date care se dovedeste eficienta in raport cu prelucrarile ulterioara
- Fisierul secvential privind o colectivitate de cel mult 300 membri, in care articolele au un sablon definit prin struct Articol {....}; ale carui campuri insumeate dau o lungime de 100 baiti:
a) se citeste articol de articol pentru a fi prelucrat integral
b) se incarca intr-un vector de structura ale carui elemente urmaresc sablonul asociat articolelor din fisier
c) se citeste si initializeaza elementele unui vector de structura definit cu 300 elemente de tipul struct Articol, intrucat acest tip a fost utilizat la scrierea in fisier a articolelor
d) initializeaza un sir de 300*100 de baiti
e) initializeaza partial un sir de 300*100 de baiti
- Lista simpla:
a) se initializeaza cu date provenind dintr-un fisier secvential
b) se initializeaza de fiecare data cu date introduse de la tastatura
c) se initializeaza de fiecare data cu date introduse de la tastatura daca datele sunt specifice fiecarei rulari si nu este necesara reutilizarea lor
d) se initializeaza de fiecare data cu date introduse de la tastatura daca datele sunt specifice fiecarei rulari si exista garantii ca nu este necesara reutilizarea lor
e) se initializeaza cu date provenind dintr-un fisier secvential intrucat zilnic se opereaza pe aceleasi seturi de date
- Cand se lucreaza cu o lista simpla trebuie:
a) sa se conserve adresa primului element
b) sa se asigure traversarea ei corecta
c) sa se conserve informatia utila intr-un fisier secvential daca se reiau prelucrarile dupa ce lista a fost dealocata
d) sa existe copii ale informatiei utile din lista
e) se utilizeaza proceduri foarte generale din biblioteca pentru toate operatiile cu elementele listei
- Conversia de la un fisier secvential spre lista dubla este necesara atunci cand:
a) informatia utila a fisierului este folosita pentru regasiri dupa cheie
b) regasirea dupa cheie presupune parcurgerea dupa unul dintre sensuri, functie de apartenenta cheii la o anumita submultime
c) operatiile necesare prelucrarilor, precum stergerea de elemente, necesita o astfel de structura dinamica
d) se urmareste obtinerea unui grad cat mai bun de utilizare a memoriei
e) exista o functie de biblioteca pentru acest tip de conversie
- Un arbore binar echilibrat este:
a) arbore de cautare
b) acel arbore care are un numar de noduri egal cu (2 la puterea k)-1
c) acel arbore care are un numar de noduri egal cu (2 la puterea k+1) -1
d) acel arbore care are nu mai putin (2 la puterea k+1) -1, noduri , unde k reprezinta numarul de niveluri
e) acel arbore care are in jur de (2 la puterea k)-1 noduri
- Arborele de cautare:
a) are chei numerice
b) are cheia descendentului stang mai mica decat cheia nodului parinte
c) are cheia descendentului drept mai mare decat cheia nodului parinte
d) are cheia descendentului stang mai mica decat cheia nodului parinte si cheia descendentului drept mai mare decat cheia nodului parinte
e) are cheile care indeplinesc conditia ch_ds < ch_p < ch_dd
unde:
ch_ds - cheia descendentului stang al nodului Ni , (i=1,2,3,...,m)
ch_p - cheia nodului Ni (i=1,2,3,...,m
ch_dd - cheia descendentului drept al nodului Ni (i=1,2,3,...,m
N1, N2, N3,..., Nm - nodurile arborelui binar
- Crearea unui arbore binar se efectueaza :
a) folosin datele dintr-un vector de tip intreg
b) folosind informatii utile dintr-un vector de structura
c) cu date de la tastatura
d) cu informatii utile dintr-un fisier
e) folosind o procedura recursiva
- Identificarea frunzelor unui arbore binar este necesara atunci cand:
a) la nivelul frunzei se finalizeaza un proces de cautate
b) frunzele contin informatii de baza
c) pentru a cunoaste numarul total al cuvintelor derivate dintr-un text
d) se fectueaza o testare completa a unui subsir de caractere
e) se finalizeaza cautarea intr-un dictionar de termeni similari
- Stabilitatea unei structuri de date se refera la:
a) variatiile mici ale numarului de componente si impune in acest caz utilizarea de structuri statice
b) continutul informatiei utile si presupune stocarea intr-o singura zona de memorie a constantelor
c) lungimile camurilor, caz in care necesita definirea unui tip care permite stocarea de informatii utile apartinand unui domeniu specificat de la inceput
d) lungimile articolelor ceea ce impune ca numarul si lungimile campurilor care formeaza un articol sa nu se modifice in timp
e) faptul ca inserarile, stergerile si alte operatii sa nu afecteze sever caracteristicile initiale ale structurii de date
- Conversia unui arbore oarecare spre un arbore binar este necesara pentru:
a) a obtine un arbore binar echilibrat
b) a folosi noduri fictive
c) a utiliza functiile din bibliotecile de proceduri de prelucrare destinate arborilor binari
d) a utiliza functiile din bibliotecile de proceduri de prelucrare destinate arborilor binari fara a mai fi nevoie sa se construiasca proceduri pentru arborii oarecare
e) a utiliza functiile din bibliotecile de proceduri de prelucrare destinate arborilor binari care sunt mai performante, desi exista si biblioteci de proceduri pentru arborii oarecare
- Daca LGptr este lungimea zonei de memorie ocupata de variabila pointer care refera un element al listei simple,
iar LGiut este lungimea zonei de memorie ocupata de informatia utila dintr-un element al listei simple,
iar n este numarul de elemente care formeaza lista simpla, atunci, G gradul de utilizare a zonei de memorie este:
a) G=LGiut/(LGiut+LGptr)
b) G=(n*LGiut)/(n*(LGiut+LGptr)+LGptr)
c) G=1 pentru ca in cazul structurilor dinamice acesta are nivelul maxim
d) G=(n*LGiut)/(n*(LGiut+LGptr)+LGptr)
e) G=(n*LGiut+LGptr)/n*LGiut+LGptr(n+1)
- Daca LGptr este lungimea zonei de memorie ocupata de variabila pointer care refera un element al listei duble,
iar LGiut este lungimea zonei de memorie ocupata de informatia utila dintr-un element al listei duble,
iar n este numarul de elemente care formeaza lista dubla, atunci, G gradul de utilizare a zonei de memorie este:
a) G=LGiut/(LGiut+2*LGptr)
b) G=(n*LGiut)/(n*(LGiut+2*LGptr)+LGptr)
c) G=1 pentru ca in cazul structurilor dinamice acesta are nivelul maxim
d) G=(n*LGiut)/(n*(LGiut+LGptr)+2*LGptr)
e) G=(n*LGiut+LGptr)/n*LGiut+2*LGptr(n+1)-1
- Daca LGptr este lungimea zonei de memorie ocupata de variabila pointer care refera un nod al unui arbore binar,
iar LGiut este lungimea zonei de memorie ocupata de informatia utila dintr-un nod al abrorelui binar,
iar Nn este numarul de noduri care formeaza arborele binar, atunci, G gradul de utilizare a zonei de memorie este:
a) G=(Nn*LGiut)/(Nn*LGiut+(2*Nn+1)*LGptr)
b) G=(Nn*LGiut)/(Nn*LGiut+(2*Nn-1)*LGptr)
c) G=(Nn*LGiut)/(Nn*LGiut+2*(Nn+1)*LGptr)
d) G=(Nn*LGiut)/Nn*(LGiut+(2+1)*LGptr)
e) G=LGiut/(LGiut+3*LGptr)
- Daca LGptr este lungimea zonei de memorie ocupata de variabila pointer care refera un element al listei simple,
LGiut_1 este lungimea zonei de memorie ocupata de informatia utila dintr-un element al listei simple, LGiut_2 este lungimea zonei de memorie ocupata de informatia utila dintr-un element al listei de liste simple,
n_1 este numarul de elemente care formeaza lista simpla, iar n_2_i este numarul de elemente care formeaza lista de liste simpla L_i, i=1,2,3,.., n_1, atunci, G gradul de utilizare a zonei de memorie ocupata de o lista simpla de liste simple, este:
a) G=T_LGiut/(T_LGiut+T_LGptr), unde:
T_LGiut - lungimea totala a zonelor de memorie pentru informatiile utile din lista de liste
T_LGptr - lungimea totala a zonelor de memorie pentru variabilele pointer din lista de liste
b) G=T_LGiut/(T_LGiut+T_LGptr+1), unde:
T_LGiut - lungimea totala a zonelor de memorie pentru informatiile utile din lista de liste
T_LGptr - lungimea totala a zonelor de memorie pentru variabilele pointer din lista de liste
c) G=T_LGiut/(T_LGiut+T_LGptr-1), unde:
T_LGiut - lungimea totala a zonelor de memorie pentru informatiile utile din lista de liste
T_LGptr - lungimea totala a zonelor de memorie pentru variabilele pointer din lista de liste
d) G=(n_1+n_2_1+n_2_2+n_2_3+n_2_4+....)*LGiut/(( n_1+n_2_1+n_2_2+ n_2_3+n_2_4+....)*LGiutn+LGptr*(1+n_1+n_2_1+n_2_2+n_2_3+n_2_4+....)*LGptr)
e) G=(n*LGiut+LGptr)/n*LGiut+LGptr(n+1)
- Un arbore ternar este:
a) arborele cu cel mult trei descendenti
b) arborele pentru care nodurile interioare au cate trei descendenti
c) acela care are definita structura nodului astfel:
struct nod_ternar{
int iut;
struct nod_ternar *pd_stang,*p_dstang, *_pdstang;
};
d) acela care are definita structura nodului astfel:
struct nod_ternar{
int iut;
struct nod_ternar *pd_stang;
struct nod_ternar *pd_mijloc;
struct nod_ternar *pd_drept;
};
e) acela care are definita structura nodului astfel:
struct nod_ternar{
int iut;
struct nod_ternar *pd_stang;
struct nod_ternar *pd_mijloc;
struct nod_ternar *pd_drept;
}*P_rad_arb_ternar;
- Arborele quatro este:
a) arborele in care nodurile intermediare au fix, cate patru descendenti
b) acela care are definita structura nodului astfel:
struct nod_quatro{
int iut;
struct nod_quatro *pd_1;
struct nod_quatro *pd_2;
struct nod_quatro *pd_3;
struct nod_quatro *pd_4;
}*P_rad_arb_quatro;
c) acela care are definita structura nodului astfel:
struct nod_quatro{
int iut;
struct nod_quatro *pd_1;
struct nod_quatro *pd_2;
struct nod_quatro *pd_3;
struct nod_quatro *pd_4;
};
d) acela care are definita structura nodului astfel:
struct nodquatro{
int iut;
struct nodquatro *pd_1;
struct nodquatro *pd_2;
struct nodquatro *pd_3;
struct nodquatro *pd_4;
}*prad_arbquatro;
e) acela care are definita structura nodului astfel:
struct nodquatro{
int *iut;
struct nodquatro *pd1;
struct nodquatro *pd2;
struct nodquatro *pd3;
struct nodquatro *pd4;
}*pradarbquatro;
- Conversia pentru NN tipuri de structuri de date presupune:
a) existenta unei biblioteci cu NN*NN proceduri de conversie
b) existenta unei biblioteci cu NN*NN-1 proceduri de conversie
c) existenta unei biblioteci cu NN*(NN-1) proceduri de conversie
d) existenta unei biblioteci cu NN*NN-NN proceduri de conversie
e) existenta unei biblioteci cu 2*(NN-1) proceduri de conversie
- Un arbore cu numar oarecare de descendenti se reprezinta prin noduri definite ca articole de forma:
a) struct arbore_oarecare{
int iut;
struct arbore_oarecare *p_nod[NMAX_nod];
};
unde NMAX_nod este o constanta simbolica pusa in corespondenta cu un numar mai mare ca 3
b) struct arbore_oarecare{
int iut;
struct arbore_oarecare *p_nod[NMAX_nod];
};
unde NMAX_nod este o constanta simbolica
c) struct arbore_oarecare{
int iut;
struct arbore_oarecare *p_nod[NMAX_nod];
};
unde NMAX_nod este o constanta simbolica pusa in corespondenta cu un numar mai mare ca 3
d) struct arbore_oarecare{
int iut;
struct arbore_oarecare **p_nod;
};
.............
struct arbore_oarecare *pnod_aux;
pnod_aux=(struct arbore_oarecare*)malloc(sizeof(struct arbore_oarecare);
pnod_aux.p_nod=(struct arbore_oarecare**)malloc(NMAX_nod);
unde NMAX_nod este o constanta simbolica pusa in corespondenta cu un numar mai mare ca 3
e) struct arbore_oarecare{
int iut;
struct arbore_oarecare *p_nod[NMAX_nod];
};
unde NMAX_nod este o constanta simbolica pusa in corespondenta cu un numar mai mare sau egala ca 4
|