You are on page 1of 2

thi gia k HK1/2009

Mn: Cu trc d liu v Gii thut


Thi gian: 60 pht (Khng s dng ti liu)
Ghi ch: thi gm tt c 7 cu. Sinh vin lp KSTN lm ht 7 cu, thang im 12/12 (s c chuyn
thnh thang im 10 tng ng). Sinh vin lp thng lm 6 cu (t cu 1 n cu 6), thang dim 10/10.

Cu 1 (1.5 im):
a) (1 im) Tnh ton big-O ca cc hm di y:
2
n
, n! , n
3.5
, n +n
2
+n
3
, 10
5
, 150 000 , nlog
2
(n)
b) (0.5 im) Sp xp cc hm trn theo th t t nh n ln theo big-O

Cu 2 (2.5 im): Cho mt DSLK n gm cc s nguyn c cu trc nh hnh bn.
Trong , DSLK n ch dng mt con tr head ch n phn t u tin ca danh
sch. Nu danh sch rng, con tr head ny l null. Vit mt phng thc bng
pseudocode nhn vo mt s nguyn, tm trong DSLK n v loi b i cc phn t
c gi tr bng hoc hn s nguyn ny 1 hoc 2. Lu , khng dng thm bt k
phng phc hoc hm ph tr no (k c t vit li).
V d, vi danh sch l {12, 13, 5, 6, -8, 9, 7, -2, 5, -1, 6, -3} v s nguyn nhn
c l 5 th danh sch kt qu l {12, 13, -8, 9, -2, -1, -3}, tc l cc phn t 5,6,7 b xa i.

Cu 3 (2 im): Vit mt
hm ton cc (global
function) bng pseudocode
nhn vo mt queue v o
ngc queue . Gi s
rng cc phng thc ca
queue v stack c cho
theo c t ca hnh bn
cnh. Ch : khng c
vit v dng thm cc hm ph tr no khc.

Cu 4 (1.5 im): Hy trnh by tng bc qu trnh to mt cy nh phn tm kim (BST) bng cch thm
vo trong cy rng ban u cc kha ln lt nh sau: F,O,R,G,E,T bit rng gi tr so snh ca cc kha ny
l th t ca chng trong bng ch ci.
Trng H Bch Khoa Tp.HCM
Khoa KH&KT My tnh
Node
data <int>
link <pointer>
end Node

Linked List
head <pointer>
end Linked List
Stack ADT
<void>Create()
<ErrorCode>Push (val DataIn <DataType>) //Thm 1 phn t vo nh stack
<ErrorCode>Pop () //B phn t trn nh stack
<ErrorCode>Top (ref DataOut <DataType>) //Xem phn t trn nh stack
<boolean>isEmpty ()

Queue ADT
<void>Create()
<ErrorCode>EnQueue (val DataIn <DataType>) //Thm 1 phn t vo cui queue
<ErrorCode>DeQueue () //B 1 phn t u queue
<ErrorCode>QueueFront (ref DataOut <DataType>) //Xem phn t u queue
<ErrorCode>QueueRear (ref DataOut <DataType>) //Xem phn t cui queue
<boolean>isEmpty ()

Cu 5 (1.5 im): Trnh by tng
bc qu trnh tm kim kha 31
dng phng php tm kim nh
phn binary_search_1 (trnh by
trong hnh bn) trn danh sch lin
kt n c th t nh sau:
{1, 12, 31, 35, 63, 98 }.

C bao nhiu ln so snh trn
kha?



Cu 6 (1 im): Cho cy nh phn nh hnh v, hy cho bit kt qu thc thi ca gii thut sau nu gii thut
c gi t phn t gc ca cy (nt c gi tr 12).









Cu 7 (2 im Dnh cho lp KSTN): Danh sch lin kt n vng (xem c
t hnh bn cnh) c qun l nh sau:
- Con tr current ch n phn t u tin.
- Nu danh sch rng, current l NULL. Ngc li, con tr link ca phn
t cui ch vo phn t u tin.
Vit mt phng thc bng pseudocode m s phn t ca danh sch ny.
Lu , khng dng thm bt k phng phc hoc hm ph tr no (k c t vit li).
al gori thm XYZ (val subroot <pointer>)
1. i f (subroot is not null)
1. print "<"
2. print (subroot->data)
3. print ">"
4. XYZ (subroot->left)
5. XYZ(subroot->right)
2.end if
end XYZ
10
1 22
7
9
3
8
17 6
5
21
13
12
Node
data <int>
link <pointer>
end Node

Circular Linked List
current <pointer>
end Circular Linked List
<ErrorCode>binary_search_1 (val target <KeyType>, ref position <int>)

1. bottom =0
2. top =size of the list-1
3. loop (bottom <top)
1. mid =(bottom +top)/2
2. if (target >data
mid
)
1. bottom =mid +1
3. else
1. top =mid
4. end if
4. end loop
5. if (top <bottom)
1. return notFound
6. else
1. position =bottom
2. if (target =data
position
)
1. return found
3. else
1. return notFound
4. end if
7. end if
end binary_search_1

You might also like