You are on page 1of 2

Trng H Bch Khoa Tp.

HCM Khoa KH&KT My tnh

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: 2n , n! , n3.5 , n + n2 + n3 , 105 , 150 000 , nlog2(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

Node data <int> link <pointer> end Node Linked List head <pointer> end Linked List

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

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 ()

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.

F G E
O

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 }.

<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 > datamid) 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 = dataposition) 1. return found 3. else 1. return notFound 4. end if 7. end if end binary_search_1

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).
algorithm XYZ (val subroot <pointer>) 1. if (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 12

13

10

22

21

17

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.

Node data <int> link <pointer> end Node Circular Linked List current <pointer> end Circular Linked List

Lu , khng dng thm bt k phng phc hoc hm ph tr no (k c t vit li).

You might also like