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