C U TRÚC D LI U VÀ GI I THU T - · PDF filea. C u trúc d. li u ph’i...

23
CU TRÚC D LIU VÀ GII THUT Câu 1. Vic thêm nút có vùng giá tr là = 45 vào cây nh phân tìm kim cân bng sau ây s làm cho cây mt cân bng. Cân bng li cây a. b. c. d.

Transcript of C U TRÚC D LI U VÀ GI I THU T - · PDF filea. C u trúc d. li u ph’i...

Page 1: C U TRÚC D LI U VÀ GI I THU T - · PDF filea. C u trúc d. li u ph’i ti t ki m tài nguyên (b< nh0 trong), b. C u trúc d. li u ph’i ph’n ’nh úng th1c t c a bài toán,

C�U TRÚC D� LI�U VÀ GI�I THU�T Câu 1. Vi�c thêm nút có vùng giá tr� là = 45 vào cây nh� phân tìm ki�m cân bng sau ây s� làm cho cây m�t cân bng.

Cân bng l i cây a.

b.

c.

d.

Page 2: C U TRÚC D LI U VÀ GI I THU T - · PDF filea. C u trúc d. li u ph’i ti t ki m tài nguyên (b< nh0 trong), b. C u trúc d. li u ph’i ph’n ’nh úng th1c t c a bài toán,

Câu 2. Thêm ph�n t� có vùng giá tr� là 44 c�a cây nh� phân tìm ki�m cân bng s� làm cây m�t cân bng

������������������� ����!�"!#�$ � a.

b.

Page 3: C U TRÚC D LI U VÀ GI I THU T - · PDF filea. C u trúc d. li u ph’i ti t ki m tài nguyên (b< nh0 trong), b. C u trúc d. li u ph’i ph’n ’nh úng th1c t c a bài toán,

�%�&'����"�(��)��. *%�&'����"�(��+!#. Câu 3. T, ch-c c�u trúc d. li�u cho cây typedef struct BST_Node {

int Key; BST_Node * BST_Left; BST_Node * BST_Right;

} BST_OneNode; typedef BST_OneNode * BST_Type; BST_Type BSTree; Thu/t toán tìm ki�m 1 nút trên cây nh� phân tìm ki�m � c trình bày v0i các b�0c nh� sau: B1: CurNode = BSTree B2: IF (CurNode = NULL) or (CurNode->Key = SearchData)

Th1c hi�n BKT B3: IF (CurNode->Key > SearchData)

CurNode = CurNode->BST_Right B4: ELSE

CurNode = CurNode->BST_Right B5: L2p l i B2 BKT: K�t thúc B�0c nào sai 3 thu/t toán trên

a. B2 b. B3 c. B4 d. B5

Câu 4. Toán t� sizeof(char*) s� tr' v( k�t qu'

Page 4: C U TRÚC D LI U VÀ GI I THU T - · PDF filea. C u trúc d. li u ph’i ti t ki m tài nguyên (b< nh0 trong), b. C u trúc d. li u ph’i ph’n ’nh úng th1c t c a bài toán,

a. 4 b. 2 c. Là s4 byte c�a ki5u d. li�u int d. Là s4 byte c�a ki5u d. li�u char

Câu 5. Tìm mô t' úng nh�t cho hàm TinhTong sau int TinhTong(int N) { int so = 2; int tong = 0; int dem = 0; while (dem <N) { if (KiemTra(so) == 1) { tong = tong + so; dem ++; } so = so + 1; } return tong; } Trong ó int KiemTra(int so) { for (int i = 2; i<so; i++) if (so%i == 0) return 0; return 1; }

a. Hàm tính t,ng N s4 nguyên �u tiên b. Hàm tính t,ng N s4 nguyên t4 nh6 h7n N c. C' a, b (u úng d. C' a, b (u sai

Câu 6. M4i quan h� gi.a c�u trúc d. li�u và gi'i thu/t có th5 minh h8a bng 9ng th-c: a. C�u trúc d. li�u + Gi'i thu/t = Ch�7ng trình b. C�u trúc d. li�u + Ch�7ng trình = Gi'i thu/t c. Ch�7ng trình + Gi'i thu/t = C�u trúc d. li�u d. C�u trúc d. li�u = Ch�7ng trình

Câu 7. Các tiêu chu:n ánh giá c�u trúc d. li�u. ;5 ánh giá m<t c�u trúc d. li�u chúng ta th�=ng d1a vào m<t s4 tiêu chí

a. C�u trúc d. li�u ph'i ti�t ki�m tài nguyên (b< nh0 trong), b. C�u trúc d. li�u ph'i ph'n 'nh úng th1c t� c�a bài toán, c. C�u trúc d. li�u ph'i d> dàng trong vi�c thao tác d. li�u. d. C' a, b, c (u úng

Câu 8. ;�nh ngh?a nào là chính xác v0i Ki5u d. li�u con tr6

Page 5: C U TRÚC D LI U VÀ GI I THU T - · PDF filea. C u trúc d. li u ph’i ti t ki m tài nguyên (b< nh0 trong), b. C u trúc d. li u ph’i ph’n ’nh úng th1c t c a bài toán,

a. Ki5u d. li�u con tr6 là ki5u s4 nguyên b. Ki5u d. li�u con tr6 là ki(u d. li�u có c�u trúc c. Các ngôn ng. l/p trình th�=ng cung c�p cho chúng ta m<t ki5u d. li�u 2c bi�t 5 l�u tr. các �a

ch@ c�a b< nh0, ó là con tr6 d. Ki5u d. li�u con tr6 không xác �nh � c kích th�0c

Câu 9. Ki5u d. li�u t/p tin

a. T/p tin (File) có th5 xem là m<t ki5u d. li�u 2c bi�t, kích th�0c t4i a c�a t/p tin tùy thu<c vào không gian ?a n7i l�u tr. t/p tin. b. Vi�c 8c, ghi d. li�u tr1c ti�p trên t/p tin r�t m�t th=i gian và không b'o 'm an toàn cho d. li�u

trên t/p tin ó. c. C' a, b (u úng d. C' a, b 5u sai

Câu 10. ;o n mã gi' d�0i ây mô t' thu/t toán gì? Thu/t toán: B1: k = 1 B2: IF M[k] == X AND k != N

B2.1: k++ B2.2: L2p l i B2

B3: IF k < N Thông báo tìm th�y t i v� trí k

B4: ELSE Không tìm th�y.

B5: K�t thúc

a. Tìm nh� phân ph�n t� có giá tr� X b. Tìm tuy�n tính ph�n t� có giá tr� X c. Tìm ph�n t� nh6 nh�t c�a m'ng M bao gAm N ph�n t� d. C' a, b, c (u sai

Câu 11. Gi' s� có hàm nh� sau: int searchX (float M[], int N, float X) {

int k = 0; [1] while (M[k] != X ) [2]

k++; [3] if (k < N) [4]

return (k); return (-1);

} Khi ch y ch�7ng trình s� có tr�=ng h p báo lBi, nguyên nhân là do dòng l�nh nào

a. [1] b. [2] c. [3] d. [4]

Page 6: C U TRÚC D LI U VÀ GI I THU T - · PDF filea. C u trúc d. li u ph’i ti t ki m tài nguyên (b< nh0 trong), b. C u trúc d. li u ph’i ph’n ’nh úng th1c t c a bài toán,

Câu 12. Cho hàm tìm ki�m tuy�n tính nh� sau int TimKiem (int M[], int N, int X) {

int k = 0; M[N] = X; while (M[k] != X)

k++; if (k < N)

return (k); return (-1);

} Ch8n câu úng nh�t:

a. Hàm s� tr' v( 0 n�u không tìm th�y ph�n t� có giá tr� là X b. Hàm s� tr' v( 1 n�u tìm th�y ph�n t� có giá tr� l' X c. Hàm s� tr' v( -1 n�u không tìm th�y ph�n t� có giá tr� là X d. C' a, b, c (u sai.

Câu 13. Ch8n câu chính xác mô t' thu/t toán tìm nh� phân trong m<t dãy M có th- t1 tCng

a. So sánh giá tr� X v0i giá tr� ph�n t� -ng 3 gi.a c�a dãy M (� c g8i là M[Mid]. N�u bng thì tìm th�y. N�u X > M[Mid] thì Rút ngDn ph m vi tìm ki�m v( n�a �u c�a dãy M. N�u X < M[Mid] Rút ngDn ph m vi tìm ki�m v( n�a sau c�a dãy M. l2p l i quá trình này cho �n khi tìm th�y ph�n t� có giá tr� X ho2c ph m vi tìm ki�m c�a chúng ta không còn n.a.

b. So sánh giá tr� X v0i giá tr� ph�n t� -ng 3 gi.a c�a dãy M (� c g8i là M[Mid]. N�u bng thì tìm th�y. N�u X >= M[Mid] thì Rút ngDn ph m vi tìm ki�m v( n�a �u c�a dãy M. N�u X <= M[Mid] Rút ngDn ph m vi tìm ki�m v( n�a sau c�a dãy M. l2p l i quá trình này cho �n khi tìm th�y ph�n t� có giá tr� X ho2c ph m vi tìm ki�m c�a chúng ta không còn n.a.

c. So sánh giá tr� X v0i giá tr� ph�n t� -ng 3 gi.a c�a dãy M (� c g8i là M[Mid]. N�u bng thì tìm th�y. N�u X <= M[Mid] thì Rút ngDn ph m vi tìm ki�m v( n�a �u c�a dãy M. N�u X >= M[Mid] Rút ngDn ph m vi tìm ki�m v( n�a sau c�a dãy M. l2p l i quá trình này cho �n khi tìm th�y ph�n t� có giá tr� X ho2c ph m vi tìm ki�m c�a chúng ta không còn n.a.

d. So sánh giá tr� X v0i giá tr� ph�n t� -ng 3 gi.a c�a dãy M (� c g8i là M[Mid]. N�u bng thì tìm th�y. N�u X < M[Mid] thì Rút ngDn ph m vi tìm ki�m v( n�a �u c�a dãy M. N�u X > M[Mid] Rút ngDn ph m vi tìm ki�m v( n�a sau c�a dãy M. l2p l i quá trình này cho �n khi tìm th�y ph�n t� có giá tr� X ho2c ph m vi tìm ki�m c�a chúng ta không còn n.a.

Câu 14. Xét th� tEc sau: int TimKiemNP (int M[], int First, int Last, int X) {

if (First > Last) return (-1);

int Mid = (First + Last)/2; if (X == M[Mid])

return (Mid); if (X < M[Mid])

return(TimKiemNP (M, First, Mid – 1, X)); else

return(TimKiemNP (M, Mid + 1, Last, X)); }

Page 7: C U TRÚC D LI U VÀ GI I THU T - · PDF filea. C u trúc d. li u ph’i ti t ki m tài nguyên (b< nh0 trong), b. C u trúc d. li u ph’i ph’n ’nh úng th1c t c a bài toán,

L1a ch8n câu úng nh�t 5 mô t' th� tEc trên a. Th� tEc hB tr tìm ki�m ph�n t� có giá tr� là X trên m'ng các ph�n t� tF ch@ s4 tF First �n ch@ s4

Last b. Th� tEc hB tr tìm ki�m � quy ph�n t� có giá tr� là X trên m'ng các ph�n t� tF ch@ s4 tF First �n

ch@ s4 Last c. Th� tEc hB tr tìm ki�m � quy ph�n t� có giá tr� là X trên m'ng các ph�n t� tF ch@ s4 tF Last �n

ch@ s4 First d. C' a, b, c (u sai

Câu 15. N<i dung c�a hàm TimKiem nh� sau: int TimKiem (int M[], int N, int X) {

int First = 0; int Last = N – 1; while (First <= Last) { int Mid = (First + Last)/2;

if (X == M[Mid]) return(Mid);

if (X < M[Mid]) Last = Mid – 1;

else First = Mid + 1;

} return(-1);

} Ch8n câu mô t' úng nh�t cho hàm trên.

a. Hàm 3 trên th1c hi�n vi�c tìm ki�m ph�n t� có giá tr� X trong m'ng M có N ph�n t� không có th- t1 tCng. N�u tìm th�y, hàm tr' v( m<t s4 nguyên có giá tr� tF 0 �n N-1 là v� trí t�7ng -ng c�a ph�n t� tìm th�y. Trong tr�=ng h p ng� c l i, hàm tr' v( giá tr� –1 (không tìm th�y).

b. Hàm 3 trên th1c hi�n vi�c tìm ki�m ph�n t� có giá tr� X trong m'ng M có N ph�n t� ã có th- t1 tCng. N�u tìm th�y, hàm tr' v( m<t s4 nguyên có giá tr� tF 0 �n N là v� trí t�7ng -ng c�a ph�n t� tìm th�y. Trong tr�=ng h p ng� c l i, hàm tr' v( giá tr� 0 (không tìm th�y).

c. Hàm 3 trên th1c hi�n vi�c tìm ki�m ph�n t� có giá tr� X trong m'ng M có N ph�n t� ã có th- t1 tCng. N�u tìm th�y, hàm tr' v( m<t s4 nguyên có giá tr� tF -1 �n N-1 là v� trí t�7ng -ng c�a ph�n t� tìm th�y. Trong tr�=ng h p ng� c l i, hàm tr' v( giá tr� –1 (không tìm th�y).

d. Hàm 3 trên th1c hi�n vi�c tìm ki�m ph�n t� có giá tr� X trong m'ng M có N ph�n t� ã có th- t1 tCng. N�u tìm th�y, hàm tr' v( m<t s4 nguyên có giá tr� tF 0 �n N-1 là v� trí t�7ng -ng c�a ph�n t� tìm th�y. Trong tr�=ng h p ng� c l i, hàm tr' v( giá tr� –1 (không tìm th�y).

Câu 16. Ch8n câu úng nh�t

a. Thu/t toán tìm nh� phân ch@ có th5 v/n dEng trong tr�=ng h p dãy/m'ng ã có th- t1. Trong tr�=ng h p t,ng quát chúng ta ch@ có th5 áp dEng thu/t toán tìm ki�m tu�n t1.

b. Thu/t toán tìm tuy�n tính ch@ có th5 v/n dEng trong tr�=ng h p dãy/m'ng ã có th- t1. Trong tr�=ng h p t,ng quát chúng ta ch@ có th5 áp dEng thu/t toán tìm ki�m nh� phân.

c. C' a, b (u úng. d. C' a, b (u sai.

Câu 17. N<i dung c�a th� tEc tìm ki�m ph�n t� có giá tr� nguyên là X trên t/p tin ã tAn t i nh� sau: long TimKiemXTrenTapTin (char * FileName, float X)

Page 8: C U TRÚC D LI U VÀ GI I THU T - · PDF filea. C u trúc d. li u ph’i ti t ki m tài nguyên (b< nh0 trong), b. C u trúc d. li u ph’i ph’n ’nh úng th1c t c a bài toán,

{ FILE * Fp; [1] Fp = fopen(FileName, “rt”); [2] if (Fp == NULL)

return (-1); long k = 0; float a; int SOT = sizeof(float); [3] while (!feof(Fp)) {

if (fread(&a, SOT, 1, Fp) == 0) break;

k = k + SOT; if (a == X)

break; } fclose(Fp); [4] if (a == X)

return (k - SOT); return (-1);

} Tìm câu mô t' úng nh�t cho các dòng l�nh [2] hàm trên

a. Hàm fopen dùng 5 m3 t/p tin có tên (gAm c' �=ng dGn, ph�n m3 r<ng) trong bi�n FileName theo cách th-c m3 m<t t/p 5 8c theo ki5u nh� phân (rt). T/p tin ph'i tAn t i n�u không s� báo lBi.

b. Hàm fopen dùng 5 m3 t/p tin có tên (gAm c' �=ng dGn, ph�n m3 r<ng) trong bi�n FileName theo cách th-c m3 m<t t/p 5 8c theo ki5u vCn b'n (rt). T/p tin không c�n ph'i tAn t i.

c. Hàm fopen dùng 5 m3 t/p tin có tên (gAm c' �=ng dGn, ph�n m3 r<ng) trong bi�n FileName theo cách th-c m3 m<t t/p 5 8c theo ki5u vCn b'n (rt). T/p tin ph'i tAn t i n�u không s� báo lBi.

d. C' a, b, c (u sai Câu 18. Ch8n câu úng nh�t 5 mô t' thu/t toán sDp x�p n,i b8t (Bubble Sort) trên m'ng M có N ph�n t�:

a. ;i tF �u m'ng v( cu4i m'ng, trong quá trình i n�u ph�n t� 3 d�0i (-ng phía sau) nh6 h7n ph�n t� -ng ngay trên (tr�0c) nó thì hai ph�n t� này s� � c ,i chB cho nhau. Sau mBi l�n i chúng ta �a � c m<t ph�n t� trAi lên úng chB. Sau N l�n i thì t�t c' các ph�n t� trong m'ng M s� có th- t1 tCng.

b. ;i tF cu4i m'ng v( �u m'ng, trong quá trình i n�u ph�n t� 3 d�0i (-ng phía sau) nh6 h7n ph�n t� -ng ngay trên (tr�0c) nó thì hai ph�n t� này s� � c ,i chB cho nhau. Sau mBi l�n i chúng ta �a � c m<t ph�n t� trAi lên úng chB. Sau N l�n i thì t�t c' các ph�n t� trong m'ng M s� có th- t1 tCng.

c. ;i tF cu4i m'ng v( �u m'ng, trong quá trình i n�u ph�n t� 3 d�0i (-ng phía sau) nh6 h7n ph�n t� -ng ngay trên (tr�0c) nó thì hai ph�n t� này s� � c ,i chB cho nhau. Sau mBi l�n i chúng ta �a � c m<t ph�n t� trAi lên úng chB. Sau N–1 l�n i thì t�t c' các ph�n t� trong m'ng M s� có th- t1 tCng.

d. C' a, b, c (u sai Câu 19. Hàm mô t' sDp x�p n,i b8t (Bubble Sort) trên m'ng M có N ph�n t� void BubbleSort(int M[], int N) [1]

Page 9: C U TRÚC D LI U VÀ GI I THU T - · PDF filea. C u trúc d. li u ph’i ti t ki m tài nguyên (b< nh0 trong), b. C u trúc d. li u ph’i ph’n ’nh úng th1c t c a bài toán,

{ [2] int Temp; [3] for (int I = 0; I < N-1; I++) [4]

………………………………….. [5] if (M[J] < M[J-1]) [6] { [7]

Temp = M[J]; [8] M[J] = M[J-1]; [9] M[J-1] = Temp; [10]

} [11] return; [12]

} [13] L�nh nào sau ây s� � c �a vào dòng l�nh th- [5] c�a th� tEc

a. for (int J = N; J > I; J--) b. for (int J = N-1; J > I; J++) c. for (int J = N; J < I; J--) d. for (int J = N-1; J > I; J--)

Câu 20. Ch8n câu úng nh�t mô t' thu/t toán sDp x�p d1a trên s1 phân ho ch Quick Sort dãy M gAm N ph�n t�

a. Phân ho ch dãy M thành 02 dãy con có th- t1 t�7ng 4i th6a mãn i(u ki�n: Dãy con th- nh�t gAm các ph�n t� có giá tr� nh6 h7n giá tr� trung bình c�a dãy M. Dãy con th- hai gAm các ph�n t� có giá tr� l0n h7n giá tr� trung bình c�a dãy M. N�u dãy con th- nh�t và dãy con th- hai có nhi(u h7n 01 ph�n t� thì chúng ta l i ti�p tEc phân ho ch � quy các dãy con này.

b. Phân ho ch dãy M thành 03 dãy con có th- t1 t�7ng 4i th6a mãn i(u ki�n: Dãy con th- nh�t gAm các ph�n t� có giá tr� nh6 h7n giá tr� trung bình c�a dãy M. Dãy con th- hai gAm các ph�n t� có giá tr� bng giá tr� trung bình c�a dãy M. Dãy con th- ba gAm các ph�n t� có giá tr� l0n h7n giá tr� trung bình c�a dãy M. N�u dãy con th- nh�t và dãy con th- ba có nhi(u h7n 01 ph�n t� thì chúng ta l i ti�p tEc phân ho ch � quy các dãy con này.

c. C' a, b (u úng d. C' a, b (u sai

Câu 21. Hàm phân ho ch � quy PhanHoach 5 th1c hi�n vi�c sDp x�p theo th- t1 tCng các ph�n t� c�a m<t dãy con gi0i h n tF ph�n t� th- First �n ph�n t� th- Last trên m'ng M. Hàm PhanHoach có n<i dung nh� sau: void PhanHoach (int M[], int First, int Last) [1] { [2]

if (First >= Last) [3] return; [4]

int X = M[(First+Last)/2]; [5] int Temp; [6] int I = First; [7] int J = Last; [8] do [9]

Page 10: C U TRÚC D LI U VÀ GI I THU T - · PDF filea. C u trúc d. li u ph’i ti t ki m tài nguyên (b< nh0 trong), b. C u trúc d. li u ph’i ph’n ’nh úng th1c t c a bài toán,

{ [10] while (M[I] < X) [11]

I++; [12] while (M[J] > X) [13]

J--; [14] if (I <= J) [15] { [16]

Temp = M[I]; [17] M[I] = M[J]; [18] M[J] = Temp; [19] I++; [20] J--; [21]

} [22] } while (I <= J); [23] ………………………. [24] PhanHoach (M, I, Last); [25] return; [26]

} [27] Dòng l�nh [24] � c thay th� b3i

a. PhanHoach (M, First, I); b. PhanHoach (M, J, First); c. PhanHoach (M, I, First); d. PhanHoach (M, First, J);

Câu 22. Th� tEc mô t' thu/t toán sDp x�p ch8n tr1c ti�p (Straight Selection Sort): void SapXepChonTrucTiep(T M[], int N) {

int K = 0, PosMin; int Temp; while (K < N-1) {

T Min = M[K]; PosMin = K; for (int Pos = K+1; Pos < N; Pos++)

if (Min > M[Pos]) {

Min = M[Pos]; PosMin = Pos

} ................................... [1] ................................... [2] ................................... [3] K++;

} return;

} Ch8n câu l�nh thích h p 5 �a vào [1], [2], [3] v0i mEc tiêu hoán v� M[K] và M[PosMin] a.

Page 11: C U TRÚC D LI U VÀ GI I THU T - · PDF filea. C u trúc d. li u ph’i ti t ki m tài nguyên (b< nh0 trong), b. C u trúc d. li u ph’i ph’n ’nh úng th1c t c a bài toán,

Temp = M[K] ; Temp = M[PosMin]; M[PosMin] = Temp; b. M[K] = Temp; M[K] = M[PosMin]; M[PosMin] = Temp ; c. Temp = M[K] ; M[PosMin] = M[K]; M[PosMin] = Temp ; d. Temp = M[K] ; M[K] = M[PosMin]; M[PosMin] = Temp ; Câu 23. ;4i v0i thu/t toán sDp x�p ch8n tr1c ti�p cho dãy các ph�n t� sau

16 60 2 25 15 45 5 30 33 20 C�n th1c hi�n ..................... ch8n l1a ph�n t� nh6 nh�t 5 sDp x�p m'ng M có th- t1 tCng d�n.

a. 7 l�n b. 8 l�n c. 9 l�n d. 10 l�n

Câu 24. Thu/t toán sDp x�p chèn tr1c ti�p (Straight Insertion Sort) � c mô t' bng o n mã gi' nh� sau: B1: K = 1 B2: IF (K = N)

Th1c hi�n BKT B3: X = M[K+1] B4: Pos = 1 B5: IF (Pos > K)

Th1c hi�n B7 B6: ELSE // Tìm v� trí chèn

B6.1: If (X <= M[Pos]) Th1c hi�n B7

B6.2: Pos++ B6.3: L2p l i B6.1

B7: I = K+1 B8: IF (I > Pos)

B8.1: M[I] = M[I-1] B8.2: I-- B8.3: L2p l i B8

B9: ELSE B9.1: M[Pos] = X B9.2: K++ B9.3: L2p l i B2

BKT: K�t thúc

Page 12: C U TRÚC D LI U VÀ GI I THU T - · PDF filea. C u trúc d. li u ph’i ti t ki m tài nguyên (b< nh0 trong), b. C u trúc d. li u ph’i ph’n ’nh úng th1c t c a bài toán,

B8 mô t' tr�=ng h p

a. N�u còn ph'i d=i các ph�n t� tF Pos->I v( phía sau 1 v� trí b. N�u còn ph'i d=i các ph�n t� tF Pos->K+1 v( phía sau 1 v� trí c. N�u còn ph'i d=i các ph�n t� tF Pos->K v( phía sau 1 v� trí d. N�u còn ph'i d=i các ph�n t� tF Pos->I+1 v( phía sau 1 v� trí

Câu 25. Gi' s� c�n sDp x�p m'ng M có 10 ph�n t� sau theo ph�7ng pháp sDp x�p chèn tr1c ti�p

11 16 12 75 51 54 5 73 36 52 98 C�n th1c hi�n ..................... chèn các ph�n t� vào dãy con ã có th- t1 tCng -ng �u dãy M 5 sDp x�p m'ng M có th- t1 tCng d�n.

a. 9 l�n b. 10 l�n c. 8 l�n d. 7 l�n

Câu 26. L1a ch8n �nh ngh?a v( danh sách úng nh�t

a. Danh sách là t/p h p các ph�n t� có ki5u d. li�u xác �nh và gi.a chúng có m<t m4i liên h� nào ó.

b. S4 ph�n t� c�a danh sách g8i là chi(u dài c�a danh sách. c. M<t danh sách có chi(u dài bng 0 là m<t danh sách rBng. d. C' a, b, c (u úng

Câu 27. Mã gi' th1c hi�n thêm m<t ph�n t� vào trong m'ng (danh sách 2c) Gi' s� c�n thêm m<t ph�n t� có giá tr� NewValue vào trong danh sách M có chi(u dài Length t i v� trí InsPos. B1: IF (Length = MaxLen)

Th1c hi�n BKT B2: Pos = Length+1 B3: IF (Pos = InsPos)

Th1c hi�n B7 B4: M[Pos] = M[Pos-1] B5: Pos-- B6: L2p l i B3 B7: M[InsPos] = NewValue B8: Length++ BKT: K�t thúc B8 th1c hi�n công vi�c nào

a. D=i các ph�n t� tF v� trí InsPos->Length ra sau m<t v� trí b. D=i các ph�n t� tF v� trí InsPos->Length v( tr�0c m<t v� trí c. TCng chi(u dài c�a danh sách lên 1 d. Gi'm chi(u dài c�a danh sách i 1

Câu 28. Hàm sau th1c hi�n vi�c chèn ph�n t� có giá tr� NewValue vào trong danh sách M có chi(u dài Len t i v� trí InsPos��#�H�)�����(��*I���4��������*�!��)J���$I�K�LMN!. N<i dung c�a

Page 13: C U TRÚC D LI U VÀ GI I THU T - · PDF filea. C u trúc d. li u ph’i ti t ki m tài nguyên (b< nh0 trong), b. C u trúc d. li u ph’i ph’n ’nh úng th1c t c a bài toán,

hàm nh� sau: int ChenPhanTuVaoMang(double M[], int &Len, double NewValue, int InsPos) {

if (Len == MaxLen) return (-1);

for (int i = Len; i > InsPos; i--) M[i] = M[i-1];

M[InsPos] = NewValue; Len++; return (Len);

} Hãy ch8n mô t' úng nh�t

a. Hàm tr' v( hàm tr' v( giá tr� -1 n�u vi�c chèn vào thành công b. Hàm tr' v( chi(u dài th1c c�a danh sách sau khi chèn n�u vi�c chèn thành công và ng� c l i, hàm

tr' v( giá tr� -1. c. C' a, b (u úng d. C' a, b (u sai

Câu 29. Lo i b6 b0t m<t ph�n t� ra kh6i m'ng, gi' s� chúng ta c�n lo i b6 ph�n t� t i v� trí DelPos trong m'ng M có chi(u dài Length dùng thu/t toán v0i mã gi' mô t' nh� sau: B1: IF (Length = 0 OR DelPos > Len)

Th1c hi�n BKT B2: Pos = DelPos B3: IF (Pos = Length)

Th1c hi�n B7 B4: M[Pos] = M[Pos+1] B5: Pos++ B6: L2p l i B3 B7: Length-- BKT: K�t thúc Các b�0c tF B2 � B6 dùng 5 :

a. D=i các ph�n t� tF v� trí Pos+1->Length ra tr�0c m<t v� trí b. D=i các ph�n t� tF v� trí DelPos+1->Posra tr�0c m<t v� trí c. D=i các ph�n t� tF v� trí DelPos->Length ra tr�0c m<t v� trí d. D=i các ph�n t� tF v� trí DelPos+1->Length ra tr�0c m<t v� trí

Câu 30. Tìm mô t' chính xác cho hàm sau : int XoaPT(float M[], int &Len, int DelPos) {

if (Len == 0 || DelPos >= Len) return (-1);

for (int i = DelPos; i < Len-1; i++) M[i] = M[i+1];

Len--; return (Len);

}

Page 14: C U TRÚC D LI U VÀ GI I THU T - · PDF filea. C u trúc d. li u ph’i ti t ki m tài nguyên (b< nh0 trong), b. C u trúc d. li u ph’i ph’n ’nh úng th1c t c a bài toán,

a. Hàm th1c hi�n vi�c xóa ph�n t� t i v� trí DelPos trong m'ng M có chi(u dài Len. b. Hàm tr' v( chi(u dài th1c c�a m'ng sau khi xóa n�u vi�c xóa thành công và ng� c l i, hàm tr' v(

giá tr� -1. c. Hàm tr' v( -1 n�u vi�c xóa ph�n t� m'ng là thành công. d. Câu a, b (u úng

Câu 31. Tìm mô t' úng cho hàm sau: int SC (int M[], int Len, int CM[]) {

for (int i = 0; i < Len; i++) CM[i] = M[i];

return (Len); }

a. Hàm th1c hi�n vi�c sao chép n<i dung m'ng CM có chi(u dài Len v( m'ng M có cùng chi(u dài. Hàm tr' v( chi(u dài c�a m'ng M sau khi sao chép.

b. Hàm th1c hi�n vi�c sao chép n<i dung m'ng M có chi(u dài Len -1 v( m'ng CM có cùng chi(u dài. Hàm tr' v( chi(u dài c�a m'ng CM sau khi sao chép.

c. Hàm th1c hi�n vi�c sao chép n<i dung m'ng CM có chi(u dài Len -1 v( m'ng M có cùng chi(u dài. Hàm tr' v( chi(u dài c�a m'ng M sau khi sao chép.

d. Hàm th1c hi�n vi�c sao chép n<i dung m'ng M có chi(u dài Len v( m'ng CM có cùng chi(u dài. Hàm tr' v( chi(u dài c�a m'ng CM sau khi sao chép.

Câu 32. C�u trúc d. li�u m'ng có các �u i5m nào

a. M/t < s� dEng b< nh0 c�a m'ng là t4i �u tuy�t 4i b. Vi�c truy xu�t và tìm ki�m các ph�n t� c�a m'ng là d> dàng vì các ph�n t� -ng li(n nhau nên

chúng ta ch@ c�n s� dEng ch@ s4 5 �nh v� v� trí các ph�n t� trong danh sách (�nh v� �a ch@ các ph�n t�);

c. Vi�c thêm, b0t các ph�n t� trong danh sách 2c có nhi(u khó khCn do ph'i di d=i các ph�n t� khác i qua chB khác.

d. Câu a, b úng Câu 33. ;�nh ngh?a nào là úng v0i danh sách liên k�t

a. Danh sách liên k�t là t/p h p các ph�n t� mà gi.a chúng có m<t s1 n4i k�t v0i nhau thông qua vùng liên k�t c�a chúng.

b. Danh sách liên k�t là t/p h p các ph�n t� mà 2t k( c/n v0i nhau trong vùng nh0. c. C' a, b (u úng. d. C' a, b (u sai

Câu 34. Tìm mô t' úng v0i danh sách liên k�t 7n (Singly Linked List) a. N<i dung c�a mBi ph�n t� trong danh sách liên k�t gAm ba vùng: hai vùng d. li�u và vùng liên k�t. b. N<i dung c�a mBi ph�n t� trong danh sách liên k�t gAm hai vùng liên k�t. c. C' a, b, c (u úng d. N<i dung c�a mBi ph�n t� trong danh sách liên k�t gAm hai vùng: vùng d. li�u và vùng liên k�t.

Câu 35. ;�nh ngh?a c�u trúc d. li�u c�a danh sách liên k�t 7n � c mô t' nh� sau: typedef struct Node {

Page 15: C U TRÚC D LI U VÀ GI I THU T - · PDF filea. C u trúc d. li u ph’i ti t ki m tài nguyên (b< nh0 trong), b. C u trúc d. li u ph’i ph’n ’nh úng th1c t c a bài toán,

int Key; Node * NextNode;

} OneNode; Trong ó, khai báo Node * NextNode; dùng 5 mô t'

a. Con tr6 tr6 t0i ph�n d. li�u b. Vùng liên k�t qu'n lý �a ch@ ph�n t� k� ti�p c. C' a, b (u úng d. C' a, b (u sai

Câu 36. V0i c�u trúc d. li�u c�a danh sách liên k�t 7n l�u tr. thông tin v( phòng máy typedef struct PM { int maPM; int tongsoMay; } PHONGMAY; typedef struct Node {

PHONGMAY Data; Node * NextNode;

} OneNode; typedef OneNode * SLLPointer; ;5 qu'n lý danh sách liên k�t 7n bng ph�n t� �u và ph�n t� cu4i, c�n �nh ngh?a ki5u d. li�u: a. SLLPointer DanhSach; b. typedef struct SSLLIST {

SLLPointer First; SLLPointer Last;

} LIST; LIST DanhSach; c. typedef struct SSLLIST {

SLLPointer First; SLLPointer Last; int total;

} LIST; LIST DanhSach;

Page 16: C U TRÚC D LI U VÀ GI I THU T - · PDF filea. C u trúc d. li u ph’i ti t ki m tài nguyên (b< nh0 trong), b. C u trúc d. li u ph’i ph’n ’nh úng th1c t c a bài toán,

d. typedef struct SSLLIST {

SLLPointer First; int total;

} LIST; LIST DanhSach; Câu 37. V0i các c�u trúc qu'n lý danh sách liên k�t 7n bng m<t ph�n t� �u nh� sau: typedef struct Node {

int Data; Node * NextNode;

} OneNode; typedef OneNode * SLLPointer; SLLPointer DS; Tìm mô t' chính xác cho hàm sau: DS CreateNode(int Data) {

DS Pnode = new OneNode; if (Pnode != NULL) {

Pnode->NextNode = NULL; Pnode->Data = New;

} return (Pnode);

}

a. Hàm tr' v( con tr6 NULL trong m8i tr�=ng h p. b. Hàm h�y nút trong danh sách liên k�t 7n c. Hàm t o m0i m<t nút có thành ph�n d. li�u là New, hàm tr' v( con tr6 tr6 t0i �a ch@ c�a nút

m0i t o. N�u không � b< nh0 5 t o, hàm tr' v( con tr6 NULL. d. C' a, b, c (u úng

Câu 39. Khi c�n thêm m<t ph�n t� có giá tr� thành ph�n d. li�u là NewData (là m<t s4 nguyên) vào �u c�a danh sách liên k�t 7n dùng thu/t toán có mã gi' mô t' nh� d�0i ây. typedef struct Node {

int Data; Node * NextNode;

} OneNode; typedef OneNode * SLLPointer;

������������ ��New chu khg phai Data

Page 17: C U TRÚC D LI U VÀ GI I THU T - · PDF filea. C u trúc d. li u ph’i ti t ki m tài nguyên (b< nh0 trong), b. C u trúc d. li u ph’i ph’n ’nh úng th1c t c a bài toán,

SLLPointer SSList; B1: NewNode = new OneNode B2: IF (NewNode = NULL)

Th1c hi�n BKT B3: NewNode ->NextNode = NULL B4: NewNode ->Data = NewData B5: NewNode->NextNode = SLList B6: SLList = NewNode BKT: K�t thúc Tìm mô t' chính xác cho B5

a. Chuy5n vai trò -ng �u c�a NewNode cho SLList b. N4i NewNode vào sau SLList c. Chuy5n vai trò -ng �u c�a SLList cho NewNode d. N4i SLList vào sau NewNode

Câu 40. T, ch-c c�u trúc d. li�u cho danh sách liên k�t 7n typedef struct Node {

int Data; Node * Link;

} OneNode; typedef OneNode * SLLPointer; Mã gi' thu/t toán thêm m<t ph�n t� có giá tr� thành ph�n d. li�u là NewData vào trong danh sách liên k�t 7n SLList vào ngay sau nút có �a ch@ InsNode: B1: NewNode = new OneNode B2: IF (NewNode = NULL)

Th1c hi�n BKT B3: NewNode ->Link = NULL B4: NewNode ->Data = NewData B5: IF (InsNode-> Link = NULL)

B5.1: InsNode-> Link = NewNode B5.2: Th1c hi�n BKT

// N4i các nút k� sau InsNode vào sau NewNode B6: ……………………………………………….. // Chuy5n m4i liên k�t gi.a InsNode v0i nút k� c�a nó v( NewNode B7: ……………………………………………….. BKT: K�t thúc B6 và B7 dùng 5 n4i nút k� sau InsNode vào sau NewNode và chuy5n m4i liên k�t gi.a InsNode v0i nút k� nó v( NewNode. Hãy ch8n câu úng nh�t cho B6 và B7 a.

Page 18: C U TRÚC D LI U VÀ GI I THU T - · PDF filea. C u trúc d. li u ph’i ti t ki m tài nguyên (b< nh0 trong), b. C u trúc d. li u ph’i ph’n ’nh úng th1c t c a bài toán,

B6: InsNode-> Link = NewNode-> Link B7: NewNode = InsNode-> Link b. B6: InsNode-> Link = NewNode-> Link B7: InsNode-> Link = NewNode c. B6: NewNode-> Link = InsNode-> Link B7: NewNode = InsNode-> Link d. B6: NewNode-> Link = InsNode-> Link B7: InsNode-> Link = NewNode Câu 41. V0i �nh ngh?a c�u trúc d. li�u cho danh sách liên k�t 7n typedef struct Node {

int Data; Node * Link;

} OneNode; typedef OneNode * SLLPointer; Hàm d�0i ây 5 thêm m<t ph�n t� có giá tr� thành ph�n d. li�u là NewData vào trong danh sách liên k�t 7n SLList vào ngay sau nút có �a ch@ InsNode. SLLPointer ThemGiua(SLLPointer &SList, int NewData, SLLPointer &InsNode) {

SLLPointer NewNode = new OneNode; if (NewNode != NULL)

NewNode ->NextNode = NULL; NewNode ->Data = NewData;

else return (NULL);

if (InsNode->Link == NULL) {

InsNode-> Link = NewNode; return (SList);

} ……………………………………………………………. ……………………………………………………………. return (SList);

} Hãy l1a ch8n câu úng nh�t a.

NewNode-> Link = InsNode-> Link;

Page 19: C U TRÚC D LI U VÀ GI I THU T - · PDF filea. C u trúc d. li u ph’i ti t ki m tài nguyên (b< nh0 trong), b. C u trúc d. li u ph’i ph’n ’nh úng th1c t c a bài toán,

InsNode-> Link = NewNode; b.

InsNode -> Link = NewNode -> Link; InsNode-> Link = NewNode;

c. NewNode-> Link = InsNode-> Link; NewNode = InsNode-> Link;

d. InsNode -> Link = NewNode -> Link; NewNode = InsNode-> Link;

Câu 42, Hàm duy�t qua các nút trong danh sách liên k�t 7n qu'n lý b3i �a ch@ nút �u tiên thông qua SList 5 in n<i dung thành ph�n d. li�u c�a mBi nút ra màn hình. typedef struct Node {

int Data; Node * Link;

} OneNode; typedef OneNode * SLLPointer; void DuyetDSLKD (SLLPointer SList) {

SLLPointer CurNode = SList; while (CurNode != NULL) {

cout << CurNode->Data; ……………………………………………….[*]

} return;

} Hãy ch8n câu l�nh úng nh�t 5 �a vào [*]

a. CurNode->Link = CurNode; b. CurNode = CurNode->Data; c. CurNode = CurNode->Link; d. CurNode ->Data = CurNode;

Câu 43. Tìm ki�m xem trong danh sách liên k�t 7n có tAn t i nút có thành ph�n d. li�u là SearchData hay không. Thao tác này chúng ta v/n dEng thu/t toán tìm tuy�n tính 5 tìm ki�m. typedef struct Node {

int Data; Node * Link;

} OneNode; typedef OneNode * SLLPointer;

Page 20: C U TRÚC D LI U VÀ GI I THU T - · PDF filea. C u trúc d. li u ph’i ti t ki m tài nguyên (b< nh0 trong), b. C u trúc d. li u ph’i ph’n ’nh úng th1c t c a bài toán,

SLLPointer SSList; // Qu'n lý danh sách liên k�t 7n b3i 1 ph�n t� �u B1: CurNode = SLList B2: IF (………………………………………………)

Th1c hi�n BKT B3: CurNode = CurNode->Link B4: L2p l i B2 BKT: K�t thúc Ch8n i(u ki�n h p lý cho mã gi' 3 B2

a. CurNode != NULL OR CurNode->Data = SearchData b. CurNode = NULL OR CurNode->Data != SearchData c. CurNode = NULL OR CurNode->Data = SearchData d. CurNode != NULL OR CurNode->Data != SearchData

Câu 44. typedef struct SLLNode { int Key; SLLNode *NextNode; } SLLOneNode; typedef SLLOneNode * SLLType; Thu/t toán ch8n tr1c ti�p vi�t trên ngôn ng. C++ áp dEng cho danh sách liên k�t 7n qu'n lý b3i m<t ph�n t� �u tiên � c mô t': void SLLStraightSelection(SLLType &SList) { SLLType MinNode; int Temp; SLLType CurrNode,TempNode; CurrNode = SList; while (CurrNode!=NULL) { TempNode = CurrNode->NextNode; MinNode = CurrNode; while (TempNode!=NULL) { if (………………………………………………) MinNode = TempNode; TempNode = TempNode->NextNode; } Temp = X; X = Y;

Page 21: C U TRÚC D LI U VÀ GI I THU T - · PDF filea. C u trúc d. li u ph’i ti t ki m tài nguyên (b< nh0 trong), b. C u trúc d. li u ph’i ph’n ’nh úng th1c t c a bài toán,

Y = Temp CurrNode=CurrNode->NextNode; } } Hãy ch8n i(u ki�n úng nh�t 5 �a vào chB tr4ng

a. TempNode->Key > MinNode->Key b. TempNode->Key < MinNode->Key c. TempNode->NextNode < MinNode->NextNode d. TempNode->NextNode > MinNode->NextNode

Câu 45. C�u trúc d. li�u nào t�7ng -ng v0i LIFO

a. Queue b. Linked List c. Tree d. Stack

Câu 46. L1a ch8n câu úng nh�t v( danh sách liên k�t ôi (Doubly Linked List)

a. Vùng liên k�t trong danh sách liên ôi có 02 m4i liên k�t v0i 01 ph�n t� khác trong danh sách. b. Vùng liên k�t trong danh sách liên ôi có 01 m4i liên k�t v0i 02 ph�n t� khác trong danh sách. c. Vùng liên k�t trong danh sách liên ôi có 02 m4i liên k�t v0i 02 ph�n t� khác trong danh sách. d. &'����"����(��+!#.

&���OP%�&�Q�����!���R��!�!���)��

S0���J���*�����T!QU*NU�(Left – Root – Right) ��Q�U������V�'�$I�*H��!IQW�XY��$1����8!�+!#�!��� a. 13 2 55 40 169 11 20 34 55 90 22 b. 13 2 169 20 11 40 55 22 90 50 34 c, 34 55 2 13 40 11 169 20 50 90 22 *%�&'����"����(��+!#. N%�&'����"����(��)��. Câu 48. &�Q�����!���R��!��Y�������!���)��

Page 22: C U TRÚC D LI U VÀ GI I THU T - · PDF filea. C u trúc d. li u ph’i ti t ki m tài nguyên (b< nh0 trong), b. C u trúc d. li u ph’i ph’n ’nh úng th1c t c a bài toán,

Z���V�'�*����������U�!�$I�*H�: 20 34 77 58 54 99 101 90 89 &J���*����������U�!�$I��J���*�����!IQ?

a. Inorder b. Preorder c. Postorder d. &'����"����(��+!#

Câu 49. C�u trúc d. li�u c�a mBi nút trong danh sách l��!�����[��5�$����U.�)4�!#���!�!���)��: typedef struct Node {

int Key; Node * NextNode; Node * PreNode;

} OneNode; typedef OneNode * DLLType; ;5�V�'!�$\�*�!��)J���$��!�����[��"!#������@�R��!�������]I���4�������8!������U+�: a. typedef struct PairNode {

DLLType First; DLLType Last;

} PType; PType ListData; b. typedef struct PairNode {

DLLType First; } PType; PType ListData; c. DLLType DLLFirst; PType ListData;

Page 23: C U TRÚC D LI U VÀ GI I THU T - · PDF filea. C u trúc d. li u ph’i ti t ki m tài nguyên (b< nh0 trong), b. C u trúc d. li u ph’i ph’n ’nh úng th1c t c a bài toán,

d. DLLType First; DLLType Last; PType ListData; &��� _̂%�&����U+��*.�$������Q���5��*.�$����)�!��]��!�!���)�� typedef struct tagSV{ char MSSV[8]; char Ten[30]; char NgaySinh[11]; float DTB; }SV; Z����"JQ SV sv1, *sv2; M1����8!��J������+!#�!����5�#J!�#�J��U����Q��H�)�!��]��!�����)]̀ �]I�)]2 a. sv1.MSSV = “Nguyen Van A”; sv2.MSSV = “Nguyen Van B”; b. sv1.MSSV = “Nguyen Van A”; sv2->MSSV = “Nguyen Van B”; c. sv1->MSSV = “Nguyen Van A”; sv2->MSSV = “Nguyen Van B”; d. sv1->MSSV = “Nguyen Van A”; sv2.MSSV = “Nguyen Van B”;