1. Trang chủ
  2. » Mẫu Slide

new ôn thi liên thông

23 3 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 23
Dung lượng 0,94 MB

Nội dung

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

Ngày đăng: 21/04/2021, 06:49

w