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.. li u là SearchData hay không[r]
(1)C U TRÚC D LI U VÀ GI I THU T
Câu Vi c thêm nút có vùng giá tr = 45 vào nh phân tìm ki m cân b ng sau ây s làm cho m t cân b ng
Cân b ng l i a
b
c
(2)Câu Thêm ph n t có vùng giá tr 44 c a nh phân tìm ki m cân b ng s làm m t cân b ng
!" !#$ a
(3)%&' " ( ) *%&' " ( +!#
Câu T, ch-c c u trúc d li u cho 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 tốn tìm ki m nút nh phân tìm ki m c trình bày v0i 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 sai thu/t toán a B2
b B3 c B4 d B5 Câu
(4)a b
c Là s4 byte c a ki5u d li u int d Là s4 byte c a ki5u d li u char
Câu 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 M4i quan h gi.a c u trúc d li u gi'i thu/t có th5 minh h8a b ng 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 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 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 toán, c C u trúc d li u ph'i d> dàng vi c thao tác d li u d C' a, b, c (u úng
(5)a Ki5u d li u tr6 ki5u s4 nguyên b Ki5u d li u tr6 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 m<t ki5u d li u 2c bi t l u tr a ch@ c a b< nh0, ó tr6
d Ki5u d li u tr6 không xác nh c kích th 0c Câu Ki5u d li u t/p tin
a T/p tin (File) có th5 xem 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 t/p tin r t m t th=i gian khơng b'o 'm an tồn cho d li u 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 tốn gì? Thu/t tốn:
B1: k =
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 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 dòng l nh a [1]
(6)Câu 12 Cho hàm tìm ki m 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( n u không tìm th y ph n t có giá tr X b Hàm s tr' v( 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 X d C' a, b, c (u sai
Câu 13 Ch8n câu xác mơ t' thu/t tốn tìm nh phân m<t dãy M có th- t1 tCng
a So sánh giá tr X v0i giá tr ph n t -ng gi.a c a dãy M ( c g8i M[Mid] N u b ng tìm th y N u X > M[Mid] 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 trình cho n tìm th y ph n t có giá tr X ho2c ph m vi tìm ki m c a khơng cịn n.a
b So sánh giá tr X v0i giá tr ph n t -ng gi.a c a dãy M ( c g8i M[Mid] N u b ng tìm th y N u X >= M[Mid] 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 trình cho n tìm th y ph n t có giá tr X ho2c ph m vi tìm ki m c a khơng cịn n.a
c So sánh giá tr X v0i giá tr ph n t -ng gi.a c a dãy M ( c g8i M[Mid] N u b ng tìm th y N u X <= M[Mid] 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 trình cho n tìm th y ph n t có giá tr X ho2c ph m vi tìm ki m c a khơng cịn n.a
d So sánh giá tr X v0i giá tr ph n t -ng gi.a c a dãy M ( c g8i M[Mid] N u b ng tìm th y N u X < M[Mid] 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 trình cho n tìm th y ph n t có giá tr X ho2c ph m vi tìm ki m c a 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
(7)L1a ch8n câu úng nh t mô t' th tEc
a Th tEc hB tr tìm ki m ph n t có giá tr X m'ng 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 X m'ng 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 X m'ng 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
a Hàm th1c hi n vi c tìm ki m ph n t có giá tr X 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 n N-1 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 th1c hi n vi c tìm ki m ph n t có giá tr X 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 ngun có giá tr tF n N 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 (khơng tìm th y)
c Hàm th1c hi n vi c tìm ki m ph n t có giá tr X 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 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 th1c hi n vi c tìm ki m ph n t có giá tr X 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 n N-1 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 tốn tìm nh phân ch@ có th5 v/n dEng tr =ng h p dãy/m'ng ã có th- t1 Trong tr =ng h p t,ng quát ch@ có th5 áp dEng thu/t tốn tìm ki m tu n t1
b Thu/t tốn tìm n tính ch@ có th5 v/n dEng tr =ng h p dãy/m'ng ã có th- t1 Trong tr =ng h p t,ng quát ch@ có th5 áp dEng thu/t tốn tìm ki m nh phân
c C' a, b (u úng d C' a, b (u sai
(8){
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 dòng l nh [2] hàm
a Hàm fopen dùng m3 t/p tin có tên (gAm c' =ng dGn, ph n m3 r<ng) bi n FileName theo cách th-c m3 m<t t/p 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 m3 t/p tin có tên (gAm c' =ng dGn, ph n m3 r<ng) bi n FileName theo
cách th-c m3 m<t t/p 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 m3 t/p tin có tên (gAm c' =ng dGn, ph n m3 r<ng) bi n FileName theo cách th-c m3 m<t t/p 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 mơ t' thu/t tốn sDp x p n,i b8t (Bubble Sort) m'ng M có N ph n t : a ;i tF u m'ng v( cu4i m'ng, trình i n u ph n t d 0i ( -ng phía sau) nh6 h7n ph n
t -ng (tr 0c) hai ph n t s c ,i chB cho Sau mBi l n i a c m<t ph n t trAi lên úng chB Sau N l n i t t c' ph n t m'ng M s có th- t1 tCng
b ;i tF cu4i m'ng v( u m'ng, trình i n u ph n t d 0i ( -ng phía sau) nh6 h7n ph n t -ng (tr 0c) hai ph n t s c ,i chB cho Sau mBi l n i a c m<t ph n t trAi lên úng chB Sau N l n i t t c' ph n t m'ng M s có th -t1 tCng
c ;i tF cu4i m'ng v( u m'ng, trình i n u ph n t d 0i ( -ng phía sau) nh6 h7n ph n t -ng (tr 0c) hai ph n t s c ,i chB cho Sau mBi l n i a c m<t ph n t trAi lên úng chB Sau N–1 l n i t t c' ph n t 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) m'ng M có N ph n t
(9){ [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 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 tốn sDp x p d1a 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 có th- t1 t 7ng 4i th6a mãn i(u ki n: Dãy th- nh t gAm ph n t có giá tr nh6 h7n giá tr trung bình c a dãy M Dãy th- hai gAm ph n t có giá tr l0n h7n giá tr trung bình c a dãy M N u dãy th- nh t dãy th- hai có nhi(u h7n 01 ph n t l i ti p tEc phân ho ch quy dãy
b Phân ho ch dãy M thành 03 dãy có th- t1 t 7ng 4i th6a mãn i(u ki n: Dãy th- nh t gAm ph n t có giá tr nh6 h7n giá tr trung bình c a dãy M Dãy th- hai gAm ph n t có giá tr b ng giá tr trung bình c a dãy M Dãy th- ba gAm ph n t có giá tr l0n h7n giá tr trung bình c a dãy M N u dãy th- nh t dãy th- ba có nhi(u h7n 01 ph n t l i ti p tEc phân ho ch quy dãy
c C' a, b (u úng d C' a, b (u sai
Câu 21 Hàm phân ho ch quy PhanHoach th1c hi n vi c sDp x p theo th- t1 tCng ph n t c a m<t dãy gi0i h n tF ph n t th- First n ph n t th- Last 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]
(10){ [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; }
(11)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 ph n t sau 16 60 25 15 45 30 33 20
C n th1c hi n ch8n l1a ph n t nh6 nh t sDp x p m'ng M có th- t1 tCng d n a l n
b l n c 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' b ng o n mã gi' nh sau: B1: K =
B2: IF (K = N) Th1c hi n BKT B3: X = M[K+1] B4: Pos = 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
(12)B8 mô t' tr =ng h p
a N u ph'i d=i ph n t tF Pos->I v( phía sau v trí b N u cịn ph'i d=i ph n t tF Pos->K+1 v( phía sau v trí c N u cịn ph'i d=i ph n t tF Pos->K v( phía sau v trí d N u ph'i d=i ph n t tF Pos->I+1 v( phía sau 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 73 36 52 98
C n th1c hi n chèn ph n t vào dãy ã có th- t1 tCng -ng u dãy M sDp x p m'ng M có th- t1 tCng d n
a l n b 10 l n c l n d l n
Câu 26 L1a ch8n nh ngh?a v( danh sách úng nh t
a Danh sách t/p h p ph n t có ki5u d li u xác nh gi.a chúng có m<t m4i liên h ó
b S4 ph n t c a danh sách g8i chi(u dài c a danh sách c M<t danh sách có chi(u dài b ng 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 m'ng (danh sách 2c)
Gi' s c n thêm m<t ph n t có giá tr NewValue vào 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
a D=i ph n t tF v trí InsPos->Length sau m<t v trí b D=i 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
d Gi'm chi(u dài c a danh sách i
(13)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 chèn n u vi c chèn thành công 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 kh6i m'ng, gi' s c n lo i b6 ph n t t i v trí DelPos m'ng M có chi(u dài Length dùng thu/t tốn v0i mã gi' mơ t' nh sau:
B1: IF (Length = 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 :
a D=i ph n t tF v trí Pos+1->Length tr 0c m<t v trí b D=i ph n t tF v trí DelPos+1->Posra tr 0c m<t v trí c D=i ph n t tF v trí DelPos->Length tr 0c m<t v trí d D=i ph n t tF v trí DelPos+1->Length tr 0c m<t v trí Câu 30 Tìm mơ t' xác cho hàm sau :
int XoaPT(float M[], int &Len, int DelPos) {
if (Len == || DelPos >= Len) return (-1);
for (int i = DelPos; i < Len-1; i++) M[i] = M[i+1];
(14)a Hàm th1c hi n vi c xóa ph n t t i v trí DelPos m'ng M có chi(u dài Len
b Hàm tr' v( chi(u dài th1c c a m'ng sau xóa n u vi c xóa thành cơng 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 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 chép n<i dung m'ng CM có chi(u dài Len v( m'ng M có chi(u dài Hàm tr' v( chi(u dài c a m'ng M sau chép
b Hàm th1c hi n vi c chép n<i dung m'ng M có chi(u dài Len -1 v( m'ng CM có chi(u dài Hàm tr' v( chi(u dài c a m'ng CM sau chép
c Hàm th1c hi n vi c chép n<i dung m'ng CM có chi(u dài Len -1 v( m'ng M có chi(u dài Hàm tr' v( chi(u dài c a m'ng M sau chép
d Hàm th1c hi n vi c chép n<i dung m'ng M có chi(u dài Len v( m'ng CM có chi(u dài Hàm tr' v( chi(u dài c a m'ng CM sau chép
Câu 32 C u trúc d li u m'ng có u i5m a M/t < s dEng b< nh0 c a m'ng t4i u t 4i
b Vi c truy xu t tìm ki m ph n t c a m'ng d> dàng ph n t -ng li(n nên ch@ c n s dEng ch@ s4 nh v v trí ph n t danh sách ( nh v a ch@ ph n t );
c Vi c thêm, b0t ph n t danh sách 2c có nhi(u khó khCn ph'i di d=i ph n t khác i qua chB khác
d Câu a, b úng
Câu 33 ;nh ngh?a úng v0i danh sách liên k t
a Danh sách liên k t t/p h p ph n t mà gi.a chúng có m<t s1 n4i k t v0i thông qua vùng liên k t c a chúng
b Danh sách liên k t t/p h p ph n t mà 2t k( c/n v0i 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 danh sách liên k t gAm ba vùng: hai vùng d li u vùng liên k t b N<i dung c a mBi ph n t 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 danh sách liên k t gAm hai vùng: vùng d li u 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:
(15)int Key;
Node * NextNode; } OneNode;
Trong ó, khai báo Node * NextNode; dùng 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 b ng ph n t u 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;
(16)d
typedef struct SSLLIST {
SLLPointer First; int total;
} LIST;
LIST DanhSach;
Câu 37 V0i c u trúc qu'n lý danh sách liên k t 7n b ng 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' 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( tr6 NULL m8i tr =ng h p b Hàm h y nút 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 New, hàm tr' v( tr6 tr6 t0i a ch@ c a nút m0i t o N u không b< nh0 t o, hàm tr' v( 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 NewData (là m<t s4 nguyên) vào u c a danh sách liên k t 7n dùng thu/t tốn có mã gi' mơ t' nh d 0i ây
typedef struct Node {
int Data;
Node * NextNode; } OneNode;
typedef OneNode * SLLPointer;
(17)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' 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 NewData vào danh sách liên k t 7n SLList vào 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 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 v( NewNode B7: ………
BKT: K t thúc
B6 B7 dùng n4i nút k sau InsNode vào sau NewNode chuy5n m4i liên k t gi.a InsNode v0i nút k v( NewNode Hãy ch8n câu úng nh t cho B6 B7
(18)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 thêm m<t ph n t có giá tr thành ph n d li u NewData vào danh sách liên k t 7n SLList vào 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
(19)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 t qua nút danh sách liên k t 7n qu'n lý b3i a ch@ nút u tiên thông qua SList in n<i dung thành ph n d li u c a mBi nút 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 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 danh sách liên k t 7n có tAn t i nút có thành ph n d li u SearchData hay khơng Thao tác v/n dEng thu/t tốn tìm n tính tìm ki m
typedef struct Node {
int Data; Node * Link; } OneNode;
(20)SLLPointer SSList; // Qu'n lý danh sách liên k t 7n b3i 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 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; }
(21)Y = Temp
CurrNode=CurrNode->NextNode; }
}
Hãy ch8n i(u ki n úng nh t 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 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 danh sách liên có 02 m4i liên k t v0i 01 ph n t khác danh sách
b Vùng liên k t danh sách liên có 01 m4i liên k t v0i 02 ph n t khác danh sách
c Vùng liên k t danh sách liên ôi có 02 m4i liên k t v0i 02 ph n t khác danh sách
d &' " ( +!#
& OP%& Q ! R !! )
S0 J * T!QU*NU(Left – Root – Right) QU V ' $I*H !IQWXY $1 8! +!#!
a 13 55 40 169 11 20 34 55 90 22
b 13 169 20 11 40 55 22 90 50 34
c, 34 55 13 40 11 169 20 50 90 22
*%&' " ( +!# N%&' " ( )
(22)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 danh sách l ! [ $ U )4 !# !! ) : typedef struct Node
{
int Key;
Node * NextNode; Node * PreNode; } OneNode;
typedef OneNode * DLLType;
;5 V '!$\* ! )J $ ! [ " !# @ R ! ]I 8! U+:
a
typedef struct PairNode {
DLLType First; DLLType Last; } PType;
PType ListData; b
typedef struct PairNode {
DLLType First; } PType;
PType ListData; c
(23)d
DLLType First; DLLType Last; PType ListData;
& ^_%& U+ * $ Q * $ )! ] !! )
typedef struct tagSV{ char MSSV[8]; char Ten[30]; char NgaySinh[11]; float DTB;
}SV;
Z "JQ
SV sv1, *sv2;
M1 8! J +!#! #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