Вы находитесь на странице: 1из 48

MN CU TRC D LIU

CHNG I - Tng quan v cu trc d liu v gii thu t


!- "#i li$n h gia CT%& v gii thu t
Thc hin mt n tin hc l chuyn bi ton thc t thnh bi ton c th gii quyt trn my tnh. t bi ton thc t b!t "# u b$o g%m cc &i t'(ng )* liu + cc yu c,u -. l/ trn nh*ng &i t'(ng . 01 th2 -3y )ng mt m4 h1nh tin hc 5hn nh '(c bi ton thc t c,n ch6 trng n h$i +!n 7

T chc biu din cc i tng thc t 7


8c thnh 5h,n )* liu thc t $ )9ng2 5hong 5h6 + th':ng ch;$ ng nh*ng qu$n h no +<i nh$u2 )o trong m4 h1nh tin hc c=$ bi ton2 c,n 5hi t> ch;c 2 -3y )ng cc c!u tr6c thch h(5 nh!t ?$o cho +@$ c th 5hn nh chnh -c cc )* liu thc t ny2 +@$ c th )A )ng )Bng my tnh -. l/. 84ng +ic ny '(c gi l -3y )ng cu trc d liu CD$t$ ?tructurEF cho bi ton.

Xy dng cc th ! tc "# l$ d liu7


T@ nh*ng yu c,u -. l/ thc t2 c,n t1m r$ cc gii thuGt t'Hng ;ng -c Inh tr1nh t cc th$o tc my tnh 5hi thi hnh cho r$ "t qu mong mu&n2 3y l b'<c -3y )ng gi%i thu&t CJlgorithmF cho bi ton. Trong mt n tin hc2 gii thuGt + c!u tr6c )* liu c m&i qu$n h chKt chL +<i nh$u2 '(c th hin qu$ c4ng th;c 7

Cu trc d liu ' Gii thu t ( Ch)*ng tr+nh , - C-c ti$u chu.n /-nh gi- CT%&
0hn -nh /ng th1c t2 7 M3y l tiu chuNn qu$n trng nh!t2 quyt Inh tnh 6ng On c=$ ton b bi ton. 8,n -Em -Pt "Q l'Rng cSng nh' ) trB cc tr9ng thi bin >i c=$ )* liu trong chu tr1nh ?&ng c th chn c!u tr6c )* liu l'u tr* th hin chnh -c &i t'(ng thc t. 0h3 h45 v6i c-c tha7 t-c tr$n /89 Tiu chuNn ny gi65 tTng tnh hiu qu c=$ n7 +ic 5ht trin cc thuGt ton Hn gin2 t nhin hHnU ch'Hng tr1nh 9t hiu qu c$o hHn + t&c -. l/. Ti2t :i; ti ngu<$n h th#ng9 8!u tr6c )* liu chV nn ?. )Wng ti nguyn h th&ng +@$ = m nhim '(c ch;c nTng c=$ n. Th4ng th':ng c X lo9i ti nguyn c,n l'u t3m nh!t 7 8YZ + b nh<.

= - C-c :i>u d liu c* ?n


[iu )* liu T '(c -c Inh b\i mt b @ABCD 2 +<i 7 0 C0$luEF7 tG5 cc gi trI h(5 l m mt &i t'(ng "iu T c th l'u tr* ] C]5Er$tionF7 tG5 cc th$o tc -. l/ c th thi hnh trn &i t'(ng "iu T. 8c thuc tnh c=$ ^ [iu D_ b$o g%m7 Tn [iu D_ in gi trI
1

MN CU TRC D LIU

[ch th'<c l'u tr* TG5 cc ton t. tc ng ln [iu D_ 8c lo9i )* liu cH bn th':ng l cc lo9i )* liu Hn gin2 "h4ng c c!u tr6c nh' ?& nguyn2 ?& thc2 cc "/ t2 cc gi trI logic ... +1 +Gy 4i "hi ng':i t$ c`n gi ch6ng l cc "iu )* liu Inh ?an. Th4ng th':ng2 cc "iu )* liu cH bn b$o g%m 7 Ei>u c8 thF t1 rGi rHc9 ?& nguyn2 "/ t2 logic2 lit "2 min con b Ei>u :hIng rGi rHc9 ?& thc C-c :i>u d liu /Jnh KLn tr7ng C gM; c-c :i>u Kau9
T$n :i>u 8h$r Eth)6c c^ bytE "in gi- trJ d^Xe n ^Xf c n Xgg djXfje n jXfkf c n kggjg dXjX n Xj^ d^ c n XjXd^ oi<i h9n chV trI tuyt &i.8c gi trI pj.lndje '(c coi q c. Tuy nhin "iu rlo$t chV c f ch* ?& c nghs$. 8 th gi tOt l un?ign Ghi ch 8 th )Bng nh' ?& nguyn ^ bytE c )!u hoKc "iu "/ t h& nguyn ^ bytE "h4ng )!u h& nguyn X bytE int Zn?ign int _ong cX bytE cX bytE cl bytE

Zn?ign ch$r c^ bytE

Zn?ign long cl bytE

mlo$t

cl bytE

j.lndje j.lnje

DoublE

ce bytE

^.fndjce ^.fnjce j.lndltjX ^.^nltjX

_ong )oublE ^c bytE

N - C-c :i>u d liu c8 cu trc


OEi>u chuPi :Q t1 T$ c th "h$i bo mt chuui "/ t thEo mt ?& cch ?$u 3y7 ch$r hv^cwU xx[h$i bo mt chuui "/ t h c chiu )i xx t&i $ ^c C" c " t "t th6cF ch$r hvwqyJz8yUxx [h$i bo mt chuui "/ t h c chiu

MN CU TRC D LIU

xx )i b{ng chiu )i c=$ chuui yJz8y xx + gi trI "h\i ,u c=$ h l yJz8y ch$r |h qyJz8yUxxoi&ng cch "h$i bo trn. Trong + )W trn t$ cSng th!y '(c mt h{ng chuui "/ t '(c th hin b{ng mt chuui "/ t Kt trong cK5 ngoKc "P5 } ~. O Ei>u ;ng [iu )* liu mng l "iu )* liu trong mui 5h,n t. c=$ n l mt tG5 h(5 c th; t cc gi trI c cBng c!u tr6c '(c l'u tr* lin ti5 nh$u trong b nh<. ng c th mt chiu h$y nhiu chiu. t )y ?& chnh l h1nh t'(ng c=$ mng ^ chiu2 m$ trGn l h1nh t'(ng c=$ mng X chiu. ng ^ chiu '(c "h$i bo nh' ?$u7 @Ei>u d liuD @T$n ?i2nDR@S# 5hTn tUDVW 0 )W7 "h$i bo mt bin c tn $ l mt mng nguyn ^ chiu c t&i $ ^cc 5h,n t. t$ 5hi "h$i bo nh' ?$u7 int $v^ccwU T$ cSng c th +@$ "h$i bo +@$ gn gi trI "h\i ng cho mt mng nh' ?$u7 int $vgw q ^2 f2 dj2 e2 ^tU Trong tr':ng h(5 ny 8 cho 5hP5 t$ "h$i bo mt cch tin l(i hHn int $vw q ^2 f2 dj2 e2 ^tU T'Hng t t$ c th "h$i bo mt mng X chiu h$y nhiu chiu thEo c6 5h5 ?$u7 p[iu )* liu pTn binvph& 5h,n t.^wvph& 5h,n t.Xw...U 0 )W2 t$ c th "h$i bo7 int $v^ccwv^gcwU h$y int $vwvwq^2 f2 dj2 e2 ^t2 l2 g2 X2 e2 t2 X^2 df2 lg2 dj2 lU
Cmng $ ?L c "ch th'<c l j-gF.

O Ei>u cu trc u "iu )* liu mng l "iu )* liu trong mui 5h,n t. c=$ n l mt tG5 h(5 c th; t cc gi trI c cBng c!u tr6c '(c l'u tr* lin ti5 nh$u trong b nh< th1 mu tin l "iu )* liu m trong mui 5h,n t. c=$ n l tG5 h(5 cc gi trI c th khc cu trc. [iu mu tin cho 5hP5 ch6ng t$ m4 t cc &i t'(ng c c!u tr6c 5h;c t95. [h$i bo t>ng qut c=$ "iu ?truct nh' ?$u7 ?truct ptn "iu ?truct
{

MN CU TRC D LIU

<KDL> <tn trng>; <KDL> <tn trng>; }[<Name>];

0 )W m4 t cc th4ng tin + mt con ng':i t$ c th "h$i bo mt "iu )* liu nh' ?$u7


struct tagNguoi { c ar !o"en[3#]; int Nam$in ; c ar Noi$in [%&]; c ar 'ioi"in ; ((&) N*+ 1) Nam c ar Dia, i[#&]; c ar "tg-; ((&)K .ng c/ gia 01n + 1) ,/ gia 01n }Nguoi;

[iu mu tin b> ?ung nh*ng thiu ?t c=$ "iu mng2 gi65 t$ c "h nTng th hin cc &i t'(ng $ )9ng c=$ th gi<i thc +o trong my tnh mt cch )A )ng + chnh -c hHn. C-c tha7 t-c tr$n ?i2n cu trc9 o Truy xut n 1 thnh phn ca bin cu trc: t$n?i2nXt$nthnh5hTn Trong 82 I$ chV c=$ mt thnh 5h,n trong bin c!u tr6c '(c -c Inh b\i 5hP5 ton l!y I$ chV7 Yt$n?i2nXt$nthnh5hTn o Gn 2 bin cu trc cho nhau H; v :i>u ;Zu tin9 | M&i c=$ hm c th l7 d d d zin mu tin7 "hi th$m ?& thc t'Hng ;ng l mt gi trI mu tin Th$m chiu mu tin7 "hi th$m ?& thc t'Hng ;ng l mt gi trI mu tin 8on tr mu tin7 "hi th$m ?& thc l I$ chV c=$ bin c!u tr6c.

| m c th tr +7 d d oi trI mu tin7 8on tr mu tin7 nguoi tnhmC...F nguoi |tnhmC....F

0 )W7 D$nh ?ch th ?inh thEo th; t tn + h inclu)E p?t)io.h inclu)E pconio.h inclu)E p?tring.h inclu)E p?t)lib.h t<5[d[\ Ktruct int ng$y2 th$ng2 n$mU %

MN CU TRC D LIU

)$tEU t<5[d[\ Ktruct int ?b)U ch$r hovXgw2tEnvfwU )$tE ng$y?inhU rlo$t to$n2ly2ho$U int 5hongthiU ho?oU

] - Ei>u c7n tr^ Eh-i ni;9 [iu con tr l "iu cH ?\ )Bng l'u I$ chV b nh< c!5 5ht cho mt &i t'(ng )* liu "hc. zin con tr c "iu cH ?\ T l bin m gi trI c=$ n l I$ chV +Bng nh< c!5 5ht cho mt bin "iu T Cc th l bin con trF hoKc l gi trI Z__ chV Inh bin con tr ch'$ ch;$ I$ chV +Bng nh< no. Ehai ?-7 ?i2n c7n tr^7 u ^7 t$n:i>uc7ntr^ t$n?i2nc7ntr^U u X7 :i>uc*K_T Ot$n?i2nc7ntr^U
0 )W7
int 2a; int 23t;

Cu trc l)u tr9 zin con tr '(c l'u tr* trong +Bng nh< c!5 5ht ng CE$5F c=$ ch'Hng tr1nh. [ch th'<c c=$ bin con tr tBy thuc quy '<c ?& bytE I$ chV trong t@ng m4 h1nh b nh< c=$ t@ng ng4n ng* lG5 tr1nh C-c tha7 t-c tr$n ?i2n c7n tr^9 o G-n ! /Ja ch` ch7 ?i2n c7n tr^9 zin con tr c th '(c "h\i gn "hi "h$i bo h$y ?. )Wng c3u lnh gn t':ng minh. tnbincontr q tnbinc,nl!yI$chVU tnbincontr q Z__U 0 )W7 8h;$ I$ chV c=$ mng ^ chiu7 int |Y 2 Jv^cwU dd Y q J 8h;$ I$ chV c=$ mng X chiu7 rlo$t |Y2 zvjwvlwU dd Y q Crlo$t|F z 8h;$ I$ chV c=$ ^ bin c!u tr6c7 ?truct ochinh |Y2 h?U dd Y q h? o Tru< aut nbi dung ! ?i2n d7 ?i2n c7n tr^ tr^ /2n9 |tnbincontr _'u /7 Ton t. | + cBng 'u tin o 0hc5 K7 K-nh c7n tr^9 ?o ?nh I$ chV l'u trong X bin con tr7 q q2 q

d - e-nh gi- /b 5hFc tH5 gii thu t


af THi Ka7 5hi 5hgn thch gii thu t
Trong "hi gii mt bi ton ch6ng t$ c th c mt ?& gii thuGt "hc nh$u2 +!n l c,n 5hi nh gi cc gii thuGt l$ chn mt gii thuGt t&t Cnh!tF. Th4ng th':ng th1 t$ ?L cTn c; +o cc tiu chuNn ?$u7

MN CU TRC D LIU

d oii thuGt 6ng On. d oii thuGt Hn gin. d oii thuGt thc hin nh$nh.

?f C-ch thnh /b 5hFc tH5


8ch tnh 5h;c t95 c=$ mt gii thuGt b!t "# l mt +!n "h4ng Hn gin. Tuy nhin t$ c th tu3n thEo mt ?& nguyn tOc ?$u7 O iui tjc cbng9 u T^CnF + TXCnF l th:i gi$n thc hin c=$ h$i o9n ch'Hng tr1nh Y^ + YXU + T^CnFq]CrCnFF2 TXCnFq]CgCnF th1 th:i gi$n thc hin c=$ o9n h$i ch'Hng tr1nh n#i ti25 nhau l TCnFq]C;aak\knfBgknffF O iui tjc nhgn9 u T^CnF + TXCnF l th:i gi$n thc hin c=$ h$i o9n ch'Hng tr1nh Y^+ YX + T^CnF q ]CrCnFF2 TXCnF q ]CgCnF th1 th:i gi$n thc hin c=$ o9n h$i o9n ch'Hng tr1nh lMng nhau l TCnF q ]C\knfXgknfF O iui tjc tng qu-t /> 5hgn thch ;bt ch)*ng tr+nh9 Th:i gi$n thc hin c=$ mui lnh gn2 cin2 cout l ]C^F Th:i gi$n thc hin c=$ mt chuui tu,n t cc lnh '(c -c Inh b{ng qui tOc cng. h' +Gy th:i gi$n ny l th:i gi$n thi hnh mt lnh no l3u nh!t trong chuui lnh. Th:i gi$n thc hin c!u tr6c im l th:i gi$n l<n nh!t thc hin lnh ?$u im hoKc ?$u n_hn + th:i gi$n "im tr$ iu "in. Th':ng th:i gi$n "im tr$ iu "in l ]C^F. Th:i gi$n thc hin +`ng lK5 l t>ng Ctrn t!t c cc l,n lK5F th:i gi$n thc hin th3n +`ng lK5. u th:i gi$n thc hin th$n +`ng lK5 "h4ng >i th1 th:i gi$n thc hin +`ng lK5 l tch c=$ ?& l,n lK5 +<i th:i gi$n thc hin th3n +`ng lK5. Ah dl7 Tnh th:i gi$n thc hin c=$ o9n ch'Hng tr1nh
+oi) hCint $vw2 int F int i2 2 tgU ^ror Ci q c U ipd^ U iF X ror C qd^U i U ddF j l g k irC$vwp $vd^wF tg q $vwU $vw q $vd^wU $vd^w q tgU xx nu ?$i +I tr th1 >i chu

8 b$ lnh >i chu l g k t&n ]C^F th:i gi$n2 )o lnh j t&n ]C^F.
4

MN CU TRC D LIU

0`ng lK5 X thc hin CndiF l,n2 mui l,n ]C^F )o +`ng lK5 X t&n ]CCndiF.^Fq]CndiF. 0`ng lK5 ^ lK5 Cnd^F l,n +Gy 5h;c t95 c=$ gii thuGt l7

O eb 5hFc tH5 cma ch)*ng tr+nh c8 gni ch)*ng tr+nh c7n :hIng / qui
u ch6ng t$ c mt ch'Hng tr1nh +<i cc ch'Hng tr1nh con "h4ng quy2 tnh th:i gi$n thc hin c=$ ch'Hng tr1nh2 tr'<c ht ch6ng t$ tnh th:i gi$n thc hin c=$ cc ch'Hng tr1nh con "h4ng gi cc ch'Hng tr1nh con "hc. h$u ch6ng t$ tnh th:i gi$n thc hin c=$ cc ch'Hng tr1nh con chV gi cc ch'Hng tr1nh con m th:i gi$n thc hin c=$ ch6ng '(c tnh. 8h6ng t$ ti5 tWc qu tr1nh nh gi th:i gi$n thc hin c=$ mui ch'Hng tr1nh con ?$u "hi th:i gi$n thc hin c=$ t!t c cc ch'Hng tr1nh con m n gi '(c nh gi. 8u&i cBng t$ tnh th:i gi$n cho ch'Hng tr1nh chnh. oi ?. t$ c mt h th&ng cc ch'Hng tr1nh gi thEo ?H % ?$u7

8h'Hng tr1nh J gi h$i ch'Hng tr1nh con l z + 82 ch'Hng tr1nh z gi h$i ch'Hng tr1nh con l z^ + zX2 ch'Hng tr1nh z^ gi h$i ch'Hng tr1nh con l z^^ + z^X. M tnh th:i gi$n thc hin c=$ J2 t$ tnh thEo cc b'<c ?$u7 Tnh th:i gi$n thc hin c=$ 82 zX2 z^^ + z^X. Tnh th:i gi$n thc hin c=$ z^. Tnh th:i gi$n thc hin c=$ z. Tnh th:i gi$n thc hin c=$ J.

MN CU TRC D LIU

Ch)*ng II - qui v gii thut qui


! Eh-i ni; / qu<
t &i t'(ng gi l '(c Inh nghs$ qui nu trong 5ht biu c=$ c )Bng chnh &i t'(ng . t ch'Hng tr1nh qui l ch'Hng tr1nh gi n chnh n trong cc c3u lnh2 tuy nhin yu t& bOt buc &i +<i mt ch'Hng tr1nh qui l n 5hi c mt iu "in )@ng M qui '(c ;ng )Wng trong r!t nhiu bi ton thc t nh'ng "h4ng 5hi b!t c; bi ton no '(c gii b{ng 5h'Hng 5h5 qui u t&t )o +ic ?. )Wng nhiu b nh< l'u tr* t9m th:i cc bin c=$ ch'Hng tr1nh quy

, Gii thu t / qu< v ch)*ng tr+nh / qu< t Inh nghs$ qui th':ng c X thnh 5h,n d Thnh 5hTn c# /Jnh C huy bin F 7 "h4ng c l:i gi qui
V du: 0! = 1! = 1 d Thnh 5hTn / qui C T>ng qut F 7 ng +<i th$m ?& c l:i gi qui n th$m ?& "hc2 ),n tin + thnh 5h,n c& Inh V du: n! = n*(n-1)! Nu n > 1 Thit k mt chng trnh quy cn thc hin theo ba b c ! + Phn tch bi ton xc nh trng hp suy bin, trng hp tng qut v c ng th!c c"# bi ton trong h#i trng hp ny$ + %it &hung h' ( quy )*iu tr+ v,- ./n ch0ng tr1nh 2)&iu bin 3u vo- )t/n bin-4 5 67 28uy bin4 9:turn ) ; ng th!c trong .< suy bin - = >?s: 9:turn ) ; ng th!c trong .< tng qut - ; }

+ <on thi(n h' ( quy@ cc thnh ph3n ti/u ,, thn h', A#nh sch cc Bi, gCi h' 0 )W7 3y )ng hm tnh n thEo qui. inclu)Epio?trE$m.h inclu)Epconio.h inclu)Ep?t)io.h inclu)Epm$th.h
6

MN CU TRC D LIU

l7ng gtkint nf ir Cn qq c n qq ^F rEturn ^U El?E rEturn Cn | gtCnd^FFU A7id ;ainkf


" #u v nh$c i%m c&a gii thut quy

clr?crCFU int n2 long "qU coutpp~nq~UcinnU "qqgtCnFU coutpp }"Et qu$ }pp"qU gEtchCFU

M quy m9nh \ chu c th Inh nghs$ mt tG5 r!t l<n cc tc ng chV b\i mt ?& r!t t mnh . hng ?=$ DA hiu u bGt '(c +!n Du i'@ 9Et phF hp vGi 'Ht sB bi ton tr/n cy, I th Jhc i'@ .Bn bH nhG v 'Et thi gi#n$ ' ()*c bi to*n qui c+n bn ^.Tnh Z8_C-2yF thEo thuGt ton nucli)E 8ch K@ int oC&Nkint aB int <f ir Cy q q cF rEturn -U El?E rEturn CoC&N Cy2 - yFFU ;ch L int oC&Nkint aB int <f ir C-q qyF rEturn -U El?E ir C-yF rEturn oC&N C-dy2yFU El?E rEturn oC&N C-2yd-FU
, X%p< K# qi?7nacci /)4c a-c /Jnh nh) Kau9 mcq^U m^q^U mnqmnd^mndX +<i nqX. y -c Inh 5h,n t. th; n c=$ c=$ )y ?&. Int qi?7kint nf r i\ kn (( s tt kn (( !f r[turn !W 7

MN CU TRC D LIU

[lK[ r[turn kqi?7kn - !f ' qi?7kn - ,ffW u

j Tnh hCnF q ^ X j ... n d ^ n l Tnh hCnF q ^X XX jX ... Cnd^FX nX g Tnh hCnF q ^ ^xX ^xj ... ^xn k Tnh hCnF q ^xX ^xl ... ^xXn f Tnh hCnF q ^ ^xj ^xg ... ^xCXn^F e Tnh hCnF q ^xC^|XF ^xCX|jF ^xC nC|nd^F F t Tnh hCnF q ^xX Xxj jxl ... nxCn^F ^c Tnh hCnF q ^xX jxl gxk ... CXn^FxCXnXF ^^ Tnh TCnF q ^|X|j|.....|n ^X Tnh TC-2nF q -n ^j Tnh hCnF q ^ ^.X ^.X.j .... ^.X.j....n ^l Tnh hC-2nF q - -X -j ... -n ^g Tnh hC-2nF q -X -l .... -Xn ^k Tnh hC-2nF q - -j -g .... -CXn^F ^f Tnh hCnF q ^ ^xC^XF ^xC^XjF ... ^xC^Xj...nF ^e Tnh hC-2nF q - C-XFxX C-jFxj ... C-nFxn ^t Tnh hC-2nF q ^ C-XFxX C-lFxl ... C-XnFxCXnF Xc T1m '<c ?& l l<n nh!t c=$ ?& nguyn )'Hng n . 0 )W 7 n q ^cc '<c l l<n nh!t c=$ ^cc l Xg X^ Tnh hCnF q ?qrtCX ?qrt CX ... ?qrt C X ?qrtCXF F F F XX Tnh hCnF q ?qrtCn ?qrt Cnd^ ?qrtCndX ...?qrtCX ?qrt C^F F F F F Xj Tnh hCnF q ?qrtC^ ?qrtCX ?qrt Cj ...?qrt Cnd^ ?qrt CnFFFFF Xl hCnF q ^xC^ ^xC^ ^xC^ ^xC... ^ xC^xC^ ^xC^ ^ FFFFFFF Xg y m ?& l'(ng ch* ?& c=$ ?& nguyn )'Hng n Xk y tnh t>ng cc ch* ?& c=$ ?& nguyn )'Hng n Xf y tnh tch cc ch* ?& c=$ ?& nguyn )'Hng n Xe y m ?& l'(ng ch* ?& l c=$ ?& nguyn )'Hng n Xt y tnh t>ng cc ch* ?& chan c=$ ?& nguyn )'Hng n jc y tnh tch cc ch* ?& l c=$ ?& nguyn )'Hng n j^ 8ho ?& nguyn )'Hng n . y t1m ch* ?& ,u tin c=$ n jX y t1m ch* ?& o ng'(c c=$ ?& nguyn )'Hng n jj T1m ch* ?& l<n nh!t c=$ ?& nguyn )'Hng n jl T1m ch* ?& nh nh!t c=$ ?& nguyn )'Hng n jg y "im tr$ ?& nguyn )'Hng n c ton ch* ?& l h$y "h4ng jk y "im tr$ ?& nguyn )'Hng n c ton ch* ?& chan h$y "h4ng jf hG5 ?& nguyn + cho bt ?& c b$o nhiu ch* ?&.
je DBng gii thuGt quy tnh M N xn jt $F DBng gii thuGt quy tnh )y ?& mC-2nF q

"n n

CncF

bF Tnh gi trI c=$ mC-2nF +<i - q g + n q g b{ng thuGt ton trn

1&

MN CU TRC D LIU

lc.DBng gii thuGt quy tnh AOy sB ,-./n0 N l^.DBng gii thuGt quy tnh )y ?& 8$t$n$ng 8vnw q ^
n ^ i =^

" n | n 2 n-P4

nu nq^ nu nq^

8vnw q

'viw| 'vnd^w

CHNG III 1 )*c 2hng 2h*2 342 .2 c bn


! 5nh ngh6a bi to*n 342 .2
Trong h,u ht cc h l'u tr*2 qun l/ )* liu2 th$o tc t1m "im th':ng '(c thc hin nh!t "h$i thc th4ng tin 7 0 )u7 tr$ c;u t@ in2 t1m ?ch trong th' +in... 0 )W7 cc t@ trong t@ in '(c ?O5 -5 thEo t@ng +,n2 trong mui +,n l9i '(c ?O5 -5 thEo tr1nh t $l5h$bEtU ?ch trong th' +in '(c -5 thEo ch= ... hO5 -5 l qu tr1nh -. l/ mt )$nh ?ch cc 5h,n t. ChoKc cc mu tinF Kt ch6ng thEo mt th; t th$ mn mt tiu chuNn no )$ trn ni )ung th4ng tin l'u gi* t9i mui 5h,n t. hO5 -5 )y ?& a! B a, BXXX BaN l thc hin +ic b& tr l9i cc 5h,n t. ?$o cho h1nh thnh '(c )y m<i a:! B a:, BXXX Ba:N c th; t C gi ?. -Pt th; t tTngF nghs$ l a:i a:i-!X

, C-c 5h)*ng 5h-5 Kj5 a25 ,X! C-c 5h)*ng 5h-5 Kj5 a25 c8 /b 5hFc tH5 N,
,X!X! 0h)*ng 5h-5 chnn tr1c ti25 kS[l[cti7nS7rt)
Gii thu t T$ th!y r{ng2 nu mng c th; t2 5h,n t. $ i lu4n l minC$i2 $i^2 .2 $nd^F. t'\ng c=$ thuGt ton chn trc ti5 m4 5hng mt trong nh*ng cch ?O5 -5 t nhin nh!t trong thc t7 chn 5h,n t. nh nh!t trong 5h,n t. b$n ,u2 '$ 5h,n t. ny + +I tr 6ng l ,u )y hin hnhU ?$u "h4ng qu$n t3m n n n*$2 -Em )y hin hnh chV c`n d^ 5h,n t. c=$ )y b$n ,u2 bOt ,u t@ +I tr th; XU lK5 l9i qu tr1nh trn cho )y hin hnh... n "hi )y hin hnh chV c`n ^ 5h,n t.. Dy b$n ,u c 5h,n t.2 +Gy tm tOt / t'\ng thuGt ton l thc hin d^ l'(t +ic '$ 5h,n t. nh nh!t trong )y hin hnh + +I tr 6ng \ ,u )y. 8c b'<c tin hnh nh' ?$u 7 z'<c ^7 i q ^U z'<c X7 T1m 5h,n t. $vminw nh nh!t trong )y hin hnh t@ $viw n $vw z'<c j 7 on +I $vminw + $viw
11

MN CU TRC D LIU

z'<c l 7 u i d^ th1 i q i^U _K5 l9i z'<c X g'(c l9i7 D@ng. xxd^ 5h,n t. n{m 6ng +I tr. Ah dl 8ho )y ?& $7 ^X X e g ^ k l ^g

12

MN CU TRC D LIU

Ci /vt 8i Kt thuGt ton ?O5 -5 chn trc ti5 thnh hm c on89


:oi- , on8int a[]+int N 9 { int min; (( c ; s< 3 =n t> n ? n @t trong -AB Eor 8int { iF1; i<NG1 ; iHH9 iCn Dn

min F i; Eor8int I F iH1; I <N ; IHH9 iE 8a[I ] < a[min]9 min F I; (( g i n Jn :K trL 3 =n t> !oan:i8a[min]+ a[i]9; iCn n ? n @t

} }

w-nh gi- gii thu t &i +<i gii thuGt chn trc ti52 c th th!y r{ng \ l'(t th; i2 b$o gi: cSng c,n CndiF l,n ?o ?nh -c Inh 5h,n t. nh nh!t hin hnh. h& l'(ng 5hP5 ?o ?nh ny "h4ng 5hW thuc +o t1nh tr9ng c=$ )y ?& b$n ,u2 )o +Gy trong mi tr':ng h(5 c th "t luGn 7 h& l,n ?o ?nh q h& l,n hon +I Cmt hon +I b{ng j 5hP5 gnF l9i 5hW thuc +o t1nh tr9ng b$n ,u c=$ )y ?&2 t$ chV c th '<c l'(c trong t@ng tr':ng h(5 nh' ?$u 7
Tr':ng h(5 T&t nh!t !u nh!t h& l,n ?o ?nh nCnd^FxX nCnd^FxX h& 5hP5 gn c jnCnd^FxX

,X!X, 0h)*ng 5h-5 Chxn tr1c ti25 kInK[rti7nS7rtf


Gii thu t oi ?. c mt )y a! B a, BXXX Ban trong i 5h,n t. ,u tin a! B a, BXXX Bai-! c th; t. t'\ng chnh c=$ gii thuGt ?O5 -5 b{ng 5h'Hng 5h5 chn trc ti5 l t1m cch chn 5h,n t. ai +o +I tr thch h(5 c=$ o9n '(c ?O5 c )y m<i a! B a, BXXX Bai tr\ nn c th; t. 0I tr ny chnh l +I tr gi*$ h$i 5h,n t. a:-! + a: th$ a:-! ai @ a: C^"iF. 8ho )y b$n ,u a! B a, BXXX Ban2 t$ c th -Em nh' c o9n g%m mt 5h,n t. a! '(c ?O52 ?$u thm a, +o o9n a! ?L c o9n a! a, '(c ?O5U ti5 tWc thm a= +o o9n a! a, c o9n a! a, a= '(c ?O5U ti5 tWc cho n "hi thm -ong aN +o o9n a! a, XXXaN-! ?L c )y a! a,XXXX aN '(c ?O5. 8c b'<c tin hnh nh' ?$u 7 z'<c ^7 i q XU z'<c X7 - q $viwU T1m +I tr 5o? thch h(5 trong o9n $v^w n $vid^w chn $viw +o xx gi ?. c o9n $v^w '(c ?O5

13

MN CU TRC D LIU

z'<c j7 D:i chu cc 5h,n t. t@ $v5o?w n $vid^w ?$ng 5hi ^ +I tr )nh chu cho $viw z'<c l7 $v5o?w q -U z'<c g7 i q i^U u i n 7 _K5 l9i z'<c X. g'(c l9i 7 D@ng. Ah dl 8ho )y ?& $7 ^X X e g ^ k l ^g xx c o9n $v^w..$viw '(c ?O5

1%

MN CU TRC D LIU

D@ng

Ci /vt 8i Kt thuGt ton ?O5 -5 chn trc ti5 thnh hm 8hEnCF


:oi- c en8int a[]+ int N 9 { int 3+ i; int M; //lu gi tr a[i] trnh b ghi khi di ch cc phn t Eor8int iF1 ; i<N ; iHH9 //!"n a[#] $ %&p { M F a[i]; 3 F iG1; // t'( ) tr* chn + N iOe883 >F &9PP8a[3] > M99 ,// k-t h.p di ch cc phn t %/ 0ng %au + tr!ng d$1 (2i a[3H1] F a[3]; 3GG; } a[3H1] F M]; // chn + )3! d$1 } }

Nh n act
[hi t1m +I tr thch h(5 chn $viw +o o9n $vcw n $vid^w2 )o o9n '(c ?O52 nn c th ?. )Wng gii thuGt t1m nhI 5h3n thc hin +ic t1m +I tr 5o?2 "hi c gii thuGt ?O5 -5 chn nhJ 5hgn 7

:oiQRnsertion$ort8int a[]+ int N 9 { int O+r+m+i; int M; //lu gi tr a[i] trnh b ghi khi di ch cc phn t Eor8int iF1 ; i<N ; iHH9 { M F a[i]; O F 1; r F iG1; N iOe8i<Fr9 // t'( ) tr* chn + { m F 8OHr9(2; // t'( ) tr* th*ch h.p ( iE8M < a[m]9 r F mG1; eOse O F mH1; }

1#

MN CU TRC D LIU

} }

Eor8int I F iG1 ; I >FO ; IGG9 a[IH1] F a[I]; // di cc phn t %/ 0ng %au + a[O] F M; // chn + )3! d$1

e-nh gi- gii thu t &i +<i gii thuGt chn trc ti52 cc 5hP5 ?o ?nh -y r$ trong mui +`ng lK5 yhil[ t1m +I tr thch h(5 57K2 + mui l,n -c Inh +I tr $ng -Pt "h4ng thch h(52 ?L ):i chu 5h,n t. $v5o?w t'Hng ;ng. oii thuGt thc hin t!t c d^ +`ng lK5 yhil[ 2 )o ?& l'(ng 5hP5 ?o ?nh + ):i chu ny 5hW thuc +o t1nh tr9ng c=$ )y ?& b$n ,u2 nn chV c th '<c l'(c trong t@ng tr':ng h(5 nh' ?$u 7
Tr)Gng h45 T&t nh!t !u nh!t S# 5hc5 K7 K-nh S# 5hc5 g-n

,X!X= 0h)*ng 5h-5 /i chP tr1c ti25 kInt[rchang[S7rtf Gii thu t


z'<c ^ 7 i q ^Uxx bOt ,u t@ ,u )y z'<c X 7 q i^Uxxt1m cc 5h,n t. $vw p $viw2 i z'<c j 7 Trong "hi thc hin u $vwp$viw7 $viw$vwU xx-Pt cK5 $viw2 $vw q ^U z'<c l 7 i q i^U u i p n7 _K5 l9i z'<c X. g'(c l9i7 D@ng. 0 )W 7 8ho )y ?& $7 ^X X e g ^ k l ^g

14

MN CU TRC D LIU

15

MN CU TRC D LIU

16

MN CU TRC D LIU

Ci /vt 8i Kt thuGt ton ?O5 -5 thEo "iu >i chu trc ti5 thnh hm DoichoCF
:oi- -oic o8int a[]+ int N 9 { int i+ I; Eor 8i F & ; i<NG1 ; iHH9 Eor 8I FiH1; I < N ; IHH9 iE8a[I ]< a[i]9 // n-u c4 %5 %ai ) tr* th' 6i ch !oan:i8a[i]+a[I]9; }

w-nh gi- gii thu t &i +<i gii thuGt >i chu trc ti52 ?& l'(ng cc 5hP5 ?o ?nh -y r$ "h4ng 5hW thuc +o t1nh tr9ng c=$ )y ?& b$n ,u2 nh'ng ?& l'(ng 5hP5 hon +I thc hin tBy thuc +o "t q=$ ?o ?nh2 c th '<c l'(c trong t@ng tr':ng h(5 nh' ?$u 7
Tr':ng h(5 T&t nh!t !u nh!t h& l,n ?o ?nh h& l,n hon +I c

,X!XN 0h)*ng 5h-5 ni ?nt


Gii thu t t'\ng chnh c=$ gii thuGt l -u!t 5ht t@ cu&i C,uF )y2 >i chu cc cK5 5h,n t. " cGn '$ 5h,n t. nh Cl<nF hHn trong cK5 5h,n t. + +I tr 6ng ,u Ccu&iF )y hin hnh2 ?$u ?L "h4ng -Pt n n \ b'<c ti5 thEo2 )o +Gy \ l,n -. l/ th; i ?L c +I tr ,u )y l i . _K5 l9i -. l/ trn cho n "hi "h4ng c`n cK5 5h,n t. no -Pt. 8c b'<c tin hnh nh' ?$u 7 z'<c ^ 7 i q ^U z'<c X 7 q U xx l,n -. l/ ,u tin xxDuyt t@ cu&i )y ng'(c + +I tr i

Trong "hi C p iF thc hin7 u $vwp$vd^w7 $vw$vd^wU xx-Pt cK5 5h,n t. " cGn q d^U z'<c j 7 i q i^U xx l,n -. l/ " ti5 u i d^7 t )y. D@ng g'(c l9i 7 _K5 l9i z'<c X. 0 )W 8ho )y ?& $7 ^X X e g ^ k l ^g

17

MN CU TRC D LIU

2&

MN CU TRC D LIU

Ci /vt 8i Kt thuGt ton ?O5 -5 thEo "iu n>i bt thnh hm noibotCF


:oi- noiSot8int a[]+ int N 9 { int i+ I; Eor 8i F & ; i<NG1 ; iHH9 Eor 8I FNG1; I >i ; I GG9 iE8a[I]< a[IG1]9 // n-u %ai ) tr* th' 6i ch !oan:i8a[I]+a[IG1]9; }

21

MN CU TRC D LIU

w-nh gi- gii thu t &i +<i gii thuGt n>i bt2 ?& l'(ng cc 5hP5 ?o ?nh -y r$ "h4ng 5hW thuc +o t1nh tr9ng c=$ )y ?& b$n ,u2 nh'ng ?& l'(ng 5hP5 hon +I thc hin tBy thuc +o "t q=$ ?o ?nh2 c th '<c l'(c trong t@ng tr':ng h(5 nh' ?$u 7
Tr':ng h(5 T&t nh!t !u nh!t h& l,n ?o ?nh h& l,n hon +I c

Nh n act
zubblEhort c cc "huyt im ?$u7 "h4ng nhGn )in '(c t1nh tr9ng )y c th; t h$y c th; t t@ng 5h,n. 8c 5h,n t. nh '(c '$ + +I tr 6ng r!t nh$nh2 trong "hi cc 5h,n t. l<n l9i '(c '$ + +I tr 6ng r!t chGm.

,X!X] C-c 5h)*ng 5h-5 Kj5 a25 th[7 ngu<$n tjc trbn Ngu<$n tjc Kj5 a25 ?zng 5hc5 trbn
8ho h$i mng ?O5 tTng $2b. Trn mng $2b thnh mt mng cSng $ng ?O5 tTng 8c b'<c thc hin thuGt ton nh' ?$u7 0 )W 7 8ho )y ?& $7 $ 7 X g k t ^g b7^ j
8i Kt 0oi) 8hon C int $v^ccw2int n. int bv^ccw2int mF int iqc2int qc2 int "qc2 int cv^ccwU hilE C ipn pmF irC$viwpbvwF cv"wq$viwU"q"UiqiU nl?E cv"wqbvwU"UU irC ipnF morC int tqiUtpnUtF cv"wq$vtw U" U nl?E morC tq Utpm UtF cv"wqbvtw U" U 0oi) m$inCF int n2bv^ccw2m2$v^ccwU 8outpp~mq~UcinmU 8outpp~nq~UcinnU 22

l g

MN CU TRC D LIU

morC int iqc Uipn UiF coutpp~$v}ppipp~wq~Ucin$viwU morCint qcUpmUF coutpp }bv}pppp~wq~UcinbvwU 8honC$2n2b2mFU morC iqo Uipmn UiF 8outppcviwpp } ~ U oEtchCF U

,X!Xd Gii thu t 5hgn h7Hch dp< Kj5 a25 dp< alB al'!B XB ar9
8 th 5ht biu gii thuGt ?O5 -5 uic"hort mt cch qui nh' ?$u 7

z'<c ^ 7 Yh3n ho9ch )y $l . $r thnh cc )y con 7 d Dy con ^ 7 al.. a{ a d Dy con X 7 a{'!.. ai-! q a d Dy con ^ 7 ai.. ar a z'<c X 7 u C l p F xx )y con ^ c nhiu hHn ^ 5h,n t. Yh3n ho9ch )y $l.. $ u C i p r F xx )y con j c nhiu hHn ^ 5h,n t. Yh3n ho9ch )y $i.. $r

0 )W 7 8ho )y ?& $7 ^X X e g ^ k l ^g

Yh3n ho9ch o9n l q^2 r q e7 a ( |RNV ( ]

Yh3n ho9ch o9n l q^2 r q j7 a ( |R,V ( ,

23

MN CU TRC D LIU

Yh3n ho9ch o9n l q g2 r q e7 a ( |RdV ( d

Yh3n ho9ch o9n l q f2 r q e7 a ( |R}V ( d

D@ng.

Ci /vt
ThuGt ton uic"hort c th '(c ci Kt qui nh' ?$u 7
:oi- TuicU$ort8int a[]+ int O+ int r9 { int i+I; int M; M F a[8OHr9(2]; // ch7n phn t gi8a l3( gi tr (9c i FO; I F r; -o { N iOe8a[i] < M9 iHH; N iOe8a[I] > M9 IGG; iE8i <F I9 { !oan:i8a[i]+a[I]9; iHH ; IGG; } } N iOe8i < I9; iE8O < I9 TuicU$ort8a+O+I9; iE8i < r9 TuicU$ort8a+i+r9; }

w-nh gi- gii thu t


iu q=$ thc hin c=$ gii thuGt uic"hort 5hW thuc +o +ic chn gi trI m&c. Tr':ng h(5 t&t nh!t -y r$ nu mui l,n 5h3n ho9ch u chn '(c 5h,n t. mE)i$n C5h,n t. l<n hHn Ch$y b{ngF n.$ ?& 5h,n t.2 + nh hHn Ch$y b{ngF n.$ ?& 5h,n t. c`n l9iF lm m&c2 "hi )y '(c 5h3n chi$ thnh X 5h,n b{ng nh$u + c,n log XCnF l,n 5h3n ho9ch th1 ?O5 -5 -ong. h'ng nu mui l,n 5h3n ho9ch l9i chn nh{m 5h,n t. c gi trI cc 9i Ch$y cc tiuF l m&c2 )y ?L bI 5h3n chi$ thnh X 5h,n "h4ng u7 mt 5h,n chV c ^ 5h,n t.2 5h,n c`n l9i g%m Cnd^F 5h,n t.2 )o +Gy c,n 5h3n ho9ch n l,n m<i ?O5 -5 -ong. T$ c bng t>ng "t Tr':ng h(5 5h;c t95
2%

MN CU TRC D LIU

T&t nh!t Trung b1nh !u nh!t

n|logCnF n|logCnF nX

Cgu h^i v ?i t 5 9 Cgu ! 7 8ho X )y ?& + nh' ?$u7

7 ^ l g f t ^c ^X 7 ^^ e k j X $F 0it ch'Hng tr1nh con trn h$i )y + thnh )y gim ),n. bF 4 t qu tr1nh trn h$i )y trn. KL R S T U V K$

)' QQ ;ho AOy sB

KW 8X AYng thuZt ton t1' &i' nh5 2h7n t1' x:' trong AOy sB c[ sB R &h ng\ Ju t1' thEy tr+ v, v tr ]t sB 8 nu &h ng c[ th1 tr+ v, WK 2c[ ' t+ ch0ng tr1nh ?' vi(c4 LW 8X AYng thuZt ton s^p xp ch9n trc ti2, s^p xp AOy sB th:o t+ng :n 2c[ ' t+ ch0ng tr1nh ?' vi(c 4 QQ;ho AOy sB K L S U T _ KK R KL$ VW 8X A Yng thuZt ton t1' &i' nh5 2h7n t1' x:' trong AOy sB c[ sB _ &h ng\Ju t1' thEy tr+ v, v tr ]t sB _ nu &h ng c[ th1 tr+ v, WK 2c[ ' t+ ch0ng tr1nh ?' vi(c4 UW 8X AYng thuZt ton s^p xp ch;n trc ti2, s^p xp AOy sB th:o gi+' A3n 2c[ ' t+ ch0ng tr1nh ?' vi(c 4 |||| 8ho X )y J7 j l k ^ f g t X z7 ^t e ^c Xj ^g $F y ?O5 )y $ tTng2 )y b gim bF Trn X )y $2 b thnh )y c tTng ),n2 )y ) gim ),n C c m4 t F

2#

MN CU TRC D LIU

CHNG IA ~ T" EI"


8 X gii thuGt th':ng '(c 5 )Wng t1m "im )* liu l t() tuyn t*nh + t() nh+ ,hn

! T+; :i2; tu<2n thnh


Gii thu t T1m tuyn tnh l mt "Q thuGt t1m "im r!t Hn gin + c> in. ThuGt ton tin hnh ?o ?nh a l,n l'(t +<i 5h,n t. th; nh!t2 th; h$i2 ... c=$ mng a cho n "hi gK5 '(c 5h,n t. c "h$ c,n t1m2 hoKc t1m ht mng m "h4ng th!y a. 8c b'<c tin hnh nh' ?$u 7

z'<c ^7 i q ^U xx bOt ,u t@ 5h,n t. ,u tin c=$ )y z'<c X7 ho ?nh $viw +<i -2 c X "h nTng 7
o o

$viw q - 7 T1m th!y. D@ng $viw q - 7 h$ng z'<c j.

z'<c j 7 i q i^U xx -Pt ti5 5h,n t. " trong mng u i 7 t mng2 "h4ng t1m th!y.D@ng g'(c l9i7 _K5 l9i z'<c X. X e g ^ k l ^g

0 )W 7 cho )y ?& $7 ^X 1nh X.X

u gi trI c,n t1m l e2 gii thuGt '(c tin hnh nh' ?$u 7

iq^ 1nh X.j

iqX i q j D@ng Ci /vt


24

MN CU TRC D LIU

T@ m4 t trn 3y c=$ thuGt ton t1m tuyn tnh 2 c th ci Kt hm LinearSearch -c Inh +I tr c=$ 5h,n t. c "ho - trong mng $ 7
int Linear$earc 8int a[]+ int N+ int M9 { int iF&; iHH; Wt mXng n ng U .ng c/ M (( t1m N iOe 88i<N9 PP 8a[i]VFM 99 iE8iFFN9 return G1; eOse }

return i; (( a[i] OD 3 =n t> c/ U oY M

Trong ci Kt trn 3y2 nhGn th!y mui l,n lK5 c=$ +`ng lK5 N iOe 5hi tin thnh "im tr$ X iu "in 8i<N9 : iu "in bin c=$ mng d + 8a[i]VFM 9: iu "in "im tr$ chnh. h'ng thGt ? chV c,n "im tr$ iu "in chnh 8a[i] VFM9; ci tin ci Kt2 c th )Bng 5h'Hng 5h5 -l*nh c nh- d Kt thm mt 5h,n t. c gi trI - +o cu&i mng2 nh' +Gy bo m lu4n t1m th!y - trong mng2 ?$u )$ +o +I tr t1m th!y "t luGn. 8i Kt ci tin ?$u 3y c=$ hm LinearSearch gi65 gim b<t mt 5hP5 ?o ?nh trong +`ng lK5 7
int Linear$earc 8int a[]+int N+int M9 { int iF&; (( mXng gZm N 3 =n t> t[ a[&]\\a[NG1]
iHH; (( t1m Wt mXng n ng U .ng c/ M a[N] F M; (( t m 3 =n t> t ] NH1 N iOe 8a[i]VFM 9 iE 8iFFN9 return G1; eOse return i; } (( t1m t @B M t^i :K trL i

w-nh gi- gii thu t 8 th '<c l'(ng 5h;c t95 c=$ gii thuGt t1m "im qu$ ?& l'(ng cc 5hP5 ?o ?nh '(c tin hnh t1m r$ -. Tr':ng h(5 gii thuGt t1m tuyn tnh2 c7
Tr)Gng h45 T&t nh!t !u nh!t Trung b1nh S# lTn K7 K-nh ^ n^ Cn^FxX Gii thhch Yh,n t. ,u tin c gi trI Yh,n t. cu&i cBng c gi trI oi ?. -c ?u!t cc 5h,n t. trong mng nhGn gi trI - l nh' nh$u.

0Gy gii thuGt t1m tuyn tnh c 5h;c t95 tnh ton 7 TCnF q ]CnF NHN T

oii thuGt t1m tuyn tnh "h4ng 5hW thuc +o th; t c=$ cc 5h,n t. mng2
)o +Gy 3y l 5h'Hng 5h5 t>ng qut nh!t t1m "im trn mt )y ?& b!t "#.

t thuGt ton c th '(c ci Kt thEo nhiu cch "hc nh$u2 "Q thuGt ci Kt nh h'\ng n t&c thc hin c=$ thuGt ton.
25

MN CU TRC D LIU

,X=X, T+; :i2; nhJ 5hgn


Gii thu t &i +<i nh*ng )y ?& c th; t C gi ?. th; t tTng F2 cc 5h,n t. trong )y c qu$n h $i d^ $i $i^2 t@ "t luGn '(c nu - $ i th1 - chV c th -u!t hin trong o9n v$i^ 2$w c=$ )y 2 ng'(c l9i nu - p $ i th1 - chV c th -u!t hin trong o9n v$ ^ 2$id^w c=$ )y . oii thuGt t1m nhI 5h3n 5 )Wng nhGn -Pt trn 3y t1m cch gi<i h9n 5h9m +i t1m "im ?$u mui l,n ?o ?nh - +<i mt 5h,n t. trong )y. t'\ng c=$ gii thuGt l t9i mui b'<c tin hnh ?o ?nh - +<i 5h,n t. n{m \ +I tr gi*$ c=$ )y t1m "im hin hnh2 )$ +o "t qu ?o ?nh ny quyt Inh gi<i h9n )y t1m "im \ b'<c " ti5 l n.$ trn h$y n.$ )'<i c=$ )y t1m "im hin hnh. oi ?. )y t1m "im hin hnh b$o g%m cc 5h,n t. $lErt .. $right 2 cc b'<c tin hnh nh' ?$u 7 z'<c ^7 lErt q ^U right q U z'<c X7 mi) q ClErtrightFxXU xx l!y m&c ?o ?nh ho ?nh $vmi)w +<i -2 c j "h nTng 7 o $vmi)w q -7 T1m th!y. D@ng o $vmi)w -7 xxt1m ti5 - trong )y con $lErt .. $mi) d^ 7 o right qmi)lE d ^U $vmi)w p -7 xxt1m ti5 - trong )y con $mi) ^ .. $right 7 lErt q mi) ^U z'<c j7 u lErt right xxc`n 5h,n t. ch'$ -Pt2 t1m ti5. _K5 l9i z'<c X. g'(c l9i7 D@ngU xx -Pt ht t!t c cc 5h,n t.. 0 )W 7 8ho )y ?& $ g%m e 5h,n t.7 ^ X l g k e ^X ^g xx t1m "im trn t!t c cc 5h,n t.

u gi trI c,n t1m l e2 gii thuGt '(c tin hnh nh' ?$u7 lErt q ^2 right q e2 mi)lE q l

26

MN CU TRC D LIU

lErt q g2 right q e2 mi)lE q k D@ng Ci /vt ThuGt ton t1m nhI 5h3n c th '(c ci Kt thnh hm zin$ryhE$rch7
int QinarB$earc 8int a[]+int N+int M 9 { int OeEt F&; rig t F NG1; int mi-Oe; -o { mi- F 8OeEt H rig t9(2; iE 8M F a[mi-Oe]9 return mi-Oe;((" @B M t^i mieOse iE 8M < a[mi-Oe]9 rig t F mi-Oe G1; eOse OeEt F mi-Oe H1; }N iOe 8OeEt <F rig t9; return G1; (( "1m Wt -AB mD U .ng c/ M }

w-nh gi- gii thu t Tr':ng h(5 gii thuGt t1m nhI 5h3n2 c bng 5h3n tch ?$u 7
Tr)Gng h45 T&t nh!t !u nh!t Trung b1nh S# lTn K7 K-nh ^ log X n log X CnxXF Gii thhch Yh,n t. gi*$ c=$ mng c gi trI [h4ng c - trong mng oi ?. -c ?u!t cc 5h,n t. trong mng nhGn gi trI - l nh' nh$u

0Gy gii thuGt t1m nhI 5h3n c 5h;c t95 tnh ton 7 TCnF q ]Clog X nF
NHN T

oii thuGt t1m nhI 5h3n )$ +o qu$n h gi trI c=$ cc 5h,n t. mng Inh h'<ng trong qu tr1nh t1m "im2 )o +Gy chV 5 )Wng '(c cho nh*ng )y c th; t. oii thuGt t1m nhI 5h3n tit "im th:i gi$n hHn r!t nhiu ?o +<i gii thuGt t1m tuyn tnh )o TnhI 5h3n CnF q ]ClogXnF p Ttuyn tnh CnF q ]CnF. Tuy nhin "hi mu&n 5 )Wng gii thuGt t1m nhI 5h3n c,n 5hi -Pt n th:i gi$n ?O5 -5 )y ?& th$ iu "in )y ?& c th; t. Th:i gi$n ny "h4ng nh2 + "hi )y ?& bin ng c,n 5hi tin hnh ?O5 -5 l9i . T!t c cc nhu c,u t9o r$ "huyt im chnh cho gii thuGt t1m nhI 5h3n. T$ c,n c3n nhOc nhu c,u thc t chn mt trong h$i gii thuGt t1m "im trn ?$o cho c l(i nh!t

27

MN CU TRC D LIU

CHNG A - %|NH SCH


enc v g-n d liu ch7 ?i2n /bng /)4c tr^ ?_i ?i2n c7n tr^
| 87 | Y$?c$l7 |zincontr zincontr |5^ q gU

0 )W7 on gi trI +o +Bng nh< tr b\i bin 5^7

0 )W7 Mc gi trI l'u trong +Bng nh< tr b\i bin 5^7 8outpp}oi$ tri ch;$ trong +Bng nh<~pp |5^FU

! %anh K-ch li$n :2t kgu li$n :2t f


D$nh ?ch lin "t l ^ tG5 h(5 cc 5h,n t. cBng "iu2 gi*$ X 5h,n t. trong )$nh ?ch c mt m&i lin "t.

!X! eJnh nghip9 8ho tr'<c "iu )* liu T2 [iu -3u lin "t T- q p 0-2 ]- trong 7 0- q TG5 h(5 c th; t g%m cc bin ng "iu T ]- q T9o )$nh ?chU _it " cc 5h,n t. trong )$nh ?chU ThmU =yU T1mU hO5 -5 !X, i>u din danh K-ch li$n :2t9 ui 5h,n t. trong -3u l mt bin ng "iu mu tin ch;$ t nh!t X thnh 5h,n7 d Yh,n )* liu d Yh,n lin "t thuc "iu con tr ch;$ I$ chV c=$ 5h,n t. " ti5 trong )$nh ?ch. D$t$ _in" ui -3u '(c qun l/ b\i mt bin con tr ch;$ I$ chV c=$ 5h,n t. ,u -3u2 '(c gi l c!n tr. /u )$nh ?ch.
Nh n act9 0<i cch qun l/ ny2 cc 5h,n t. trong )$nh ?ch "h4ng c,n c!5 5ht lin tWc trong b nh<. 8 th "t n&i thm hoKc h=y b ^ 5h,n t. b{ng cch cG5 nhGt l9i I$ chV trong 5h,n lin "t. h& l'(ng 5h,n t. "h4ng h9n ch tBy thuc +o "ch th'<c b nh<. 8 nhiu "iu t> ch;c lin "t gi*$ cc 5h,n t. trong )$nh ?ch7 d danh K-ch li$n :2t /*n9 oi*$ X 5h,n t. trong )$nh ?ch chV c ^ m&i lin "t2 Yh,n t. cu&i c=$ )$nh ?ch c gi trI Z__ d danh K-ch li$n :2t vng9 h' )$nh ?ch lin "t Hn nh'ng 5h,n t. cu&i c m&i lin "t +<i 5h,n t. ,u )$nh ?ch. d danh K-ch li$n :2t :c59 oi*$ X 5h,n t. trong )$nh ?ch chV c X m&i lin "t

=X,X= %anh K-ch li$n :2t /*n kgu /*nf


oi*$ X 5h,n t. trong )$nh ?ch chV c ^ m&i lin "t7 ui 5h,n t. gi* I$ chV c=$ 5h,n t. " ti5. Yh,n t. cu&i c=$ )$nh ?ch c gi trI Z__.
3&

MN CU TRC D LIU

Ch Q9 ui )$nh ?ch Hn u 5hi c mt con tr n 5h,n t. ,u )$nh ?ch2 gi l con tr ,u )$nh ?ch.

=X,X=X! Ehai ?-7 danh K-ch li$n :2t /*n9 aX Ehai ?-7 Ei>u ! nt tr7ng danh K-ch li$n :2t /*n9
?truct n7d[ int inroU no)E |5E-tU U 00 1h i b! bin 2ir3t 4u%n l$ 56718 no)E |5mir?tU 001h9i t:! 56718 5mir?t q Z__U

Ah dl9

=X,X=X, C-c tha7 t-c tr$n danh K-ch li$n :2t /*n9 ui )$nh ?ch u '(c qun l/ b\i ^ con tr ,u )$nh ?ch [h\i t9o b$n ,u c=$ mui )$nh ?ch l gn con tr ,u )$nh ?ch q Z__
aX Eh_i tH7 ! danh K-ch ;6i rPng9 an /Tu %S&E ch)a c8 5hTn tUX v7id ET kn7d[O Y5qirKtf r 5qirKt ( No&&W u

?X Ei>; tra danh K-ch rPng9 int ETra kn7d[O 5qirKtf r i\ k5qirKt (( No&&f r[turn !W [lK[ r[turn sW u cX N[yN7d[k f7 c!5 5ht mt n6t cho Dh_[. m Eo)E tr + I$ chV c=$ n6t +@$ '(c c!5 5ht. n7d[O N[yN7d[ k f r n7d[ O5W 5 ( n[y n7d[W r[turn k5fW u dX Chxn ! Nt ;6i v7 danh K-ch9 T$ Kt l9i lin "t +<i -3u7 c l tr':ng h(5 Chxn nt ;6i v7 /Tu danh K-ch
31

MN CU TRC D LIU

Chxn nt ;6i v7 cu#i danh K-ch Chxn nt ;6i v7 Kau nt /)4c tr^ ?_i c7n tr^ q Chxn nt ;6i v7 ! danh K-ch /p c8 thF t1 [!X Chxn nt ;6i v7 /Tu danh K-ch9 Thu t t7-n9 chEn)$uC F7 thm mt n6t c ni )ung - +o ,u Dh_[. +oi) chEn)$u Cno)E| 5mir?t2 int -F no)E |5U 5 q nE no)EU 5dinro q -U 5d5E-t q 5mir?tU 5mir?t q 5U [,X Chxn nt ;6i v7 cu#i danh K-ch9 Thu t t7-n9 chEncuoiC F7 thm mt n6t c ni )ung - +o cu&i Dh_[. +oi) chEncuoi Cno)E| 5mir?t2 int -F no)E |5U 5 q nE no)EU 5dinro q -U 5mir?t q 5U 5d5E-t q Z__U [=X Chxn nt c8 nIJ dung a v7 Kau nt tr^ ?_i q9 +oi) chEn?$uq Cno)E| 52 int -F no)E |qU ir C5 qq Z__F cout pp }8$n not in?Ert nE no)En~U El?E q q nE no)E U qdinro q -U qd5E-t q 5d5E-tU 5d5E-t q qU

32

MN CU TRC D LIU

[X 8a ! Nt :h^i danh K-chX F7 o 5h,n t. ,u )$nh ?ch. +oi) o$)$u Cno)E| 5mir?tF no)E |5U ir CcC5mir?tFF cout pp }_i?t i? Em5ty. o )ElEtion 5ErrormE) n~U El?E 5 q 5mir?tU 5mir?t q 5d5E-tU )ElEtE 5U 'f 7- 5hTn tU /Fng Kau nt c8 /Ja ch` 5X +oi) DElEtEJrtEr Cno)E| 5F no)E |qU ir C5 qq Z__ 5d5E-t qq Z__F cout pp }8$nnot )ElEtE n~U El?E q q 5d5E-tU 00 4 i3 th; n!d; th t <ill b; d;l;t;d 5dE-t q qd5E-tU )ElEtE CqFU 'f 7- t7n ?b danh K-chX +oi) DElEtEJll Cno)E| 5mir?tF no)E |5U hilE C5mir?t q Z__F xx rE$ch to En) 5 q 5mir?tU 5mir?t q 5d5E-tU
33

MN CU TRC D LIU

)ElEtE 5U u u \X T+; 5hTn tU tr7ng agu c8 nbi dung 9 T1m tuyn tnh2 tr + I$ chV 5h,n t. ,u tin c ni )ung Thu t t7-n9 5 )Wng thuGt ton t1m "im tuyn tnh. h. )Wng ^ con tr 5hW Y l,n l'(t tr n cc 5h,n t. trong -3u. ?!7 8ho Y tr 5h,n t. ,u -3u7 Y q 5mir?tU ?,7 Trong "hi ch'$ ht )$nh ?ch CY q Z__F ?,!7 u Ydinro qq th1 bo t1m th!y + "t th6c ng'(c l9i th1 chuyn ?$ng 5h,n t. " ti5 CY q YdE-tF ?=7 zo "h4ng t1m th!y
Void Search(node*

&p, int x)

n7d[ OqW
P = pFirst; while (P != NULL) i (P!"in o == #) ret$rn P; else P = P!"Next ; ret$rn NULL;

i t 59 Tr)Gng h45 agu /p c8 thF t1 kAh dl tng dTnf T$ t1m cho t<i "hi t1m th!y hoKc ni )ung 5h,n t. hin t9i - h$y b{ng Z__.
gX %u<t agu9

[hi c nhu c,u -. l/ t!t c 5h,n t. c=$ -3u nh'7 in2 t>ng h(52 h=y t!t c...
&oid '$(et (node* pFirst) ) node *p; p = pFirst; i (p == NULL) co$t ** +List is e,pt( !-n.; else while (p != NULL) ) co$t ** p!"in o; p = p!"pNext; %

Ah dl9 Mo ng'(c ^ -3u "/ t. z{ng cch t9o mt -3u "/ t +<i cc "/ t nhG5 t@ bn 5hm '(c l'u +o ,u -3u2 "t th6c nhG5 "hi gK5 )!u . hX Sj5 thF t1 gu9 t)_ng9 T9o -3u m<i c th; t t@ -3u cS C%ng th:i h=y -3u cSF Nh n act9 8!u tr6c -3u lin "t Hn l c!u tr6c tuyn tnh7 8hV c n6t ,u tin '(c truy nhG5 trc ti52 nh: +o con tr ,u -3u + mu&n i n cc n6t trong )$nh ?ch 5hi -u!t 5ht t@ n6t ,u tin.
3%

MN CU TRC D LIU

Yh'Hng 5h5 biu )iAn -3u lin "t c%ng "nh hHn 5h'Hng 5h5 biu )iAn lin tWc nh' mng + +ic truy nhG5 n cc 5h,n t. cSng chGm hHn. h'ng +ic cG5 nhGt -3u lin "t "h4ng yu c,u cc ng tc ?$o chP5 nn t t&n "Pm hHn ?o +<i tr':ng h(5 biu )iAn b{ng mng lin tWc. T$ th':ng chn c!u tr6c -3u lin "t "hi +!n cG5 nhGt tr\ nn qu$n trng hHn +!n truy nhG5 + ng'(c l9i. Trong cc th$o tc trn -3u Hn "h4ng '(c th$y >i I$ chV c=$ con tr ,u -3u.

=X,XN %anh K-ch li$n :2t :c5 k gu :c5f


D$nh ?ch lin "t "P5 l )$nh ?ch m mui 5h,n t. trong )$nh ?ch c "t n&i +<i ^ 5h,n t. ;ng tr'<c + ^ 5h,n t. ;ng ?$u n.

=X,XNX! Ehai ?-7 8c "h$i bo ?$u Inh nghi mt )$nh ?ch lin "t "P5 Hn gin trong t$ )Bng h$i con tr7 5YrE+ lin "t +<i 5h,n t. ;ng tr'<c + 5E-t nh' th':ng l2 lin "t +<i 5h,n t. ;ng ?$u7 T'Hng t )$nh ?ch lin "t Hn2 t$ c th -3y )ng cc th$o tc cH bn trn )$nh ?ch lin "t "P5 C-3u "P5F. t ?& th$o tc "h4ng "hc g1 trn -3u Hn. D'<i 3y l mt ?& th$o tc Kc tr'ng c=$ -3u "P57 =X,XNX, C-c tha7 t-c aX Chxn ;bt 5hTn tU v7 danh K-ch ?X Hm< ;bt 5hTn tU :h^i danh K-ch

NHN T 3u "P5 + mKt cH bn c tnh ch!t gi&ng nh' -3u Hn. Tuy nhin n c mt ?& tnh ch!t "hc -3u Hn nh' ?$u7 3u "P5 c m&i lin "t h$i chiu nn t@ mt 5h,n t. b!t "# c th truy -u!t mt 5h,n t. b!t "# "hc. Trong "hi trn -3u Hn t$ chV c th truy -u!t n cc 5h,n t. ;ng ?$u mt 5h,n t. cho tr'<c. iu ny )n n +ic t$ c th )A )ng h=y 5h,n t. cu&i -3u "P52 c`n trn -3u Hn th$o tc ny t%n chi 5h ]CnF. zB l9i2 -3u "P5 t&n chi 5h g!5 4i ?o +<i -3u Hn cho +ic l'u tr* cc m&i lin "t. iu ny "hin +ic cG5 nhGt cSng nKng n hHn trong mt ?& tr':ng h(5. h' +Gy t$ c,n c3n nhOc l$ chn 8TD_ h(5 l/ "hi ci Kt cho mt ;ng )Wng cW th.

=X,X] %anh K-ch li$n :2t vng


D$nh ?ch lin "t +`ng C-3u +`ngF l mt )$nh ?ch Hn ChoKc "P5F m 5h,n t. cu&i )$nh ?ch th$y +1 m$ng gi trI Z__2 tr t<i 5h,n t. ,u )$nh ?ch. biu )iAn2 t$ c th -. )Wng cc "Q thuGt biu )iAn nh' )$nh ?ch Hn ChoKc "P5F.

3#

MN CU TRC D LIU

=X,X]X! Ehai ?-7


T$ c th "h$i bo -3u +`ng nh' "h$i bo -3u Hn ChoKc "P5F.

=X,X]X, C-c tha7 t-c


Trn )$nh ?ch +`ng t$ c cc th$o tc th':ng gK5 ?$u7 aX T+; 5hTn tU tr$n danh K-ch vng D$nh ?ch +`ng "h4ng c 5h,n t. ,u )$nh ?ch r rt2 nh'ng t$ c th nh )!u mt 5h,n t. b!t "# trn )$nh ?ch -Em nh' 5h3n t. ,u -3u "im tr$ +ic )uyt qu$ ht cc 5h,n t. c=$ )$nh ?ch h$y ch'$. Th$; 5hTn tU ;6i

?X

NHN T &i +<i )$nh ?ch +`ng2 c th -u!t 5ht t@ mt 5h,n t. b!t "# )uyt ton b )$nh ?ch

=X= "bt K# cu trc tu<2n thnh /vc ?it =X=X! Ngn a25 - Stac:
gTn -5 th':ng '(c ?. )Wng l'u tr* )* liu t9m th:i trong qu tr1nh ch: -. l/ thEo nguyn tOc7 v7 Kau ra tr)6c k&aKt In qirKt Cut - &IqCf =X=X!X! eJnh nghip gTn -5 l mt c!u tr6c tuyn tnh2 trong chV g%m cc th$o tc7 Thm ^ 5h,n t. \ ,u )$nh ?ch Trchx=y ^ 5h,n t. \ ,u )$nh ?ch [im tr$ )$nh ?ch c rung h$y "h4ng.

=X=X!X, Ci /vt ngn a25 ?zng agu /*n Ehai ?-7 Cu trc d liu9
Ehai ?-7 c7n tr^ /Tu Stac:9
Khai bo n !n xp "#n $%&K ?truct ?t$c" 34

MN CU TRC D LIU

int inroU ?t$c" |5E-tU U

C-c Tha7 t-c9 af TH7 Stac: Png9 To5 q Z__U [h\i ng mt ht$c". z$n ,u ht$c" ch'$ c 5h,n t.. +oi) [T C?t$c"| To5F To5 q Z__U ?f Ei>; tra Ngn a25 Png9 CTo5 qq Z__FU [im tr$ ht$c" rung. int [iEmtr$ C?t$c" |To5F rEturn CTo5 qq Z__ ^ 7 cFU cf Th$; ! 5hTn tU c8 nbi dung a v7 /Tu Stac:9
:oi- " em 8stacU2 P"o3+ int M9 { stacU 23; 3 F neN stacU; 3G>inEo F M; 3G>3NeMt F "o3; "o3 F 3; }

df &< 0hTn tU _ /`nh ngn a259


:oi- LaB-au8stacU2 P"o39 { stacU 23; iE 8_m3tB 8"o399 cout << `List is em3tB\anb; eOse { 3 F "o3; "o3 F 3G>3NeMt; -eOete 3; }} e) L@B t .ng tin :c 3 =n t> 0=u -an sYc \ int 'et"o3 8stacU2 "o39

35

MN CU TRC D LIU

stacU 23; 3 F "o3; iE 83 VF NdLL 9 return 83G>inEo9; eOse { cout << e List is em3tB e; return 8G19; }

=X=X!X= Ci /vt ngn a25 ?zng ;ng v c-c tha7 t-c9


Cu trc d liu9
Khai bo n !n xp "#n '(n = d;>in; 3i?; @AA 3truct 3t cB C int nD E1iu d liuF ; G3i?;HD int T!,Iid"D 00gi J+ tr* Knh ngLn ", MD

C-c Tha7 t-c9


$F Eh_i tH7 ! Stac: rPng9 bF Ei>; tra ngn a25 rPng9 cF Ei>; tra ngn a25 /T<9 T!,Iid" ( -!W T!,Iid" (( -! T!,Iid" (( "aaSi[-!W

=X=X, Hng /4i - iu[u[ _o9i )$nh ?ch ny c hnh +i gi&ng nh' +ic -5 hng ch: mu$ +P2 +<i qui tOc e2n tr)6c - "ua tr)6cX kqirKt in qirKt Cut - qIqCf 0 )W7 z m bn 5hm2 t> ch;c c4ng +ic ch: in trong Yrint =X=X,X! Eh-i ni; ng (i l mt "iu )$nh ?ch Kt bit trong 8c th$o tc chn u thc hin \ cu&i )$nh ?ch 8c th$o tc l!y )* liu '(c thc hin \ ,u ChE$)F )$nh ?ch. 8c 5hP5 ton cH bn7
36

$n$gEr c=$ in)o?.

MN CU TRC D LIU

T9o ^ hng (i rung c Inh hng (i c rung h$y "h4ng Thm 5h,n t. +o cu&i hng (i _!y r$ + h=y 5h,n t. \ ,u hng (i.

=X=X,X, Ci /vt hng /4i ?zng agu li$n :2t9 Khai bo hn )i "#n $%&K ?truct no)E int inroU no)EN 5E-tU U ?truct uEuE no)E| mrontU no)E| E$rU U af Eh_i tH7 hng /4i rPng9 *an u +u,u, ch-a c phn t./ +oi) [TCuEuE F .mront q Z__U .E$r q Z__U ?f Ei>; tra hng /4i rPng9 int [Tr$CuEuE F rEturn C.E$r qq Z__ ^ 7 cFU cf Chxn d liu v7 cu#i hng /4i9 +oi) nnuEuE C int -2 uEuE F no)E |5U 5 q nE no)EU 5dinro q -U 5d5E-t q Z__U .E$rd5E-t q 5U .E$r q 5U ir Cnm5tyuEuECFF
37

MN CU TRC D LIU

.mront q .E$rU

df &< d liu t /Tu hng /4i9 +oi) DEuEuE CuEuE F ir Cnm5tyuEuECFF no)E |5U 5 q .mrontU .mront q .mrontd5E-tU )ElEtE 5U El?E cout pp }nrror 7 uEuE i? Em5ty yU =X=X,X= Ci /vt hng /4i ?zng ;ng9 0 )W7 Tr9ng thi hng (i tr'<c "hi ?.$ >i7
M,u 8u&i

h$u "hi chn n2 m2 o + b J2 z7


M,u 8u&i

h. )Wng ^ rEcor) g%m cc tr':ng D$u2 8uoi + ^ mng +<i chV ?& bOt ,u l c. M c th ?. )Wng l9i nh*ng n6t ch;$ )* liu '(c l!y r$. T$ ?. )Wng "Q thuGt -c Inh chV ?& +`ng tr`n Inh +I tr ,u + cu&i hng (i. 0<i cch ci Kt ny7 D$u l +I tr ;ng tr'<c 5h,n t. ,u hng (i. 8uoi l +I tr 5h,n t. cu&i hng (i ng (i rung7 D$u q 8uoi 0I tr D$u m<i q CD$u ^F mo) $-?i E 0I tr cu&i m<i q C8uoi ^F mo) $-?i E ng (i ,y7 0I tr cu&i m<i q D$u af Ehai -79
f -eEine sige 2&& struct Tueue { int n; <Kihu -* OiCu> e[sige ];

%&

MN CU TRC D LIU

int iront; //gi v tr u hng i int jear; //gi v tr cui hng i };

?f C-c 0hc5 T7-n C* n9 ?!f Eh_i TH7 iu[u[ rPng9


Khi ng mt queue. Ban u queue cha c phn t. :oi- kaUeNuOOTueue8Tueue PT9 { T\iront F G1; T\jear F G1 }

?,f Ei>; tra hng /4i rPng9 H[ad (( Tail


int _m3tBTueue8Tueue T9 { return T\iront F G1; }

?=f &< ra ! 5hTn tU G /Tu hng /4i9 void DeQueue(Queue &Q) { if (!E !t"#Queue(Q)) { Q$%ront&Q$%ront'() if (Q$%ront*Q$+e,r) -,.e/u00Queue(Q)) //D,t 0,i h,ng rong 1 e02e cout 33 4Error 5 Queue i2 e !t"!6) } Cgu h^i v ?i t 5

Cgu !9 u Inh nghs$ + bin con tr Inh nghs$ )$nh ?ch lin "t Yh3n lo9i )$nh ?ch lin "t ?o ?nh ? gi&ng + "hc nh$u gi*$ ngTn -5 + hng (i Cgu ,9 QQQ;ho bi ton `a Jhn %i/n, trong [ 'bi Jhn %i/n sc c[ cc thuHc tnh s#u @ + <C t/n + `u/ qun + Jgy sinh + a0ng #4 .hit & c0 sd Ae ?i(u cho bi ton ny bfng g8a* 0n v `u:u: 22<ng i4
%1

MN CU TRC D LIU

b4 .rong g8a* 0n, x[# 'Ht nhn vi/n d v tr s#u nhn vi/n c[ con trh q trh vo c4 .h/' 'Ht nhn vi/n vo 3u `u:u: 2<ng i4 O tio d ;.ga bfng `u:u:$ QQQ;ho bi ton `a th vi(n, trong [ 'bi quyn sch sc c[ cc thuHc tnh s#u@ + ./n sch + Jjk + Jl' jk + mi thnh #4 .hit & c0 sd Ae ?i(u cho bi ton ny bfng g8a* 0n v 8t#c& 2Jgln xp4 b4 .rong g8a* 0n, x[# 'Ht quyn sch d v tr s#u quyn sch c[ con trh q trh vo c4 aEy r# 'Ht quyn sch d 3u 8t#c& 2Jgln xp4 O tio d ;.ga bfng 8t#c&$

%2

MN CU TRC D LIU

CHNG AI ~ C
i [hi nim biu )iAn 83y ^ MInh nghs$ 83y
83y l mt tG5 h(5 cc 5h,n t. Ccc n6tF '(c t> ch;c + c cc Kc im ?$u7 oKc l mt tG5 h(5 rung Cc3y rungF. oKc l mt tG5 h(5 "hc rung trong c mt n6t )uy nh!t '(c lm n6t g&c Coot? o)EF2 cc n6t c`n l9i '(c 5h3n thnh cc nhm trong mui nhm l9i l mt c3y gi l c3y con ChubdTrEEF. h' +Gy2 mt c3y con c th l mt tG5 rung cc n6t + cSng c th l mt tG5 h(5 "hc rung trong c mt n6t lm n6t g&c c3y con. X t ?& "hi nim lin qu$n

c cma nt ~ c cma cg< kd[gr[[f zGc c=$ n6t l ?& c3y con c=$ n6t . zGc c=$ c3y l bGc l<n nh!t c=$ cc n6t c=$ c3y. u c3y c bGc l n th1 t$ gi l c3y n 5h3n. O* 5P8 zGc c=$ n6t J l j2 c=$ z l c2 c=$ D l X. zGc c=$ c3y l j. Do t$ gi l c3y t$m 5h3n. %3

MN CU TRC D LIU

Nt g#c9 6t g&c Croot? no)EF l n6t "h4ng 5hi l n6t g&c c3y con c=$ b!t "# mt c3y con no "hc trong c3y Cn6t "h4ng lm n6t g&c c3y conF. Nt :2t thc v Nt trung gian 6t "t th6c ChoKc n6t l lE$rF l n6t c bGc l c 6t trung gi$n l n6t c bGc "hc c + "h4ng 5hi l n6t g&c. "Fc cma nt v chiu ca7 cma cg< ;c c=$ n6t g&c b{ng ^ ;c c=$ n6t "hc g&c b{ng m;c c=$ n6t ch$ n cng ^ 8hiu c$o c3y l m;c l<n nh!t c=$ cc n6t l O* 5P8 z282D c m;c l X. 8hiu c$o c3y l l Nt cha v Nt c7n cma ;bt nt9 6t D '(c gi l n6t ch$ C5$rEnt? no)EF c=$ n6t n +1 n6t D l n6t tr'<c c=$ n6t n + m;c c=$ n6t D l<n hHn m;c c=$ n6t n l ^ m;c. [hi 2 n6t n '(c gi l n6t con Cchil)? no)EF c=$ n6t D. Chiu di /)Gng /i 8hiu )i ':ng i c=$ n6t7 8hiu )i ':ng i t@ n6t g&c n mt n6t - + cSng chnh l m;c c=$ n6t - . 8hiu )i ':ng i c=$ c3y7 _ t>ng c=$ cc chiu )i ':ng i c=$ t!t c cc n6t c=$ c3y + gi l chiu )i ':ng i trong CintErn$l 5$th lEngthF c=$ c3y. X 83y nhI 5h3n $F MInh nghs$ 83y nhI 5h3n l c3y rung hoKc l c3y m mui n6t c t&i $ h$i n6t conCcy cQ b&c bRng @F . Hn n*$ cc n6t con c=$ c3y '(c 5h3n bit th; t r rng2 mt n6t con gi l n6t con tri +

%%

MN CU TRC D LIU

mt n6t con gi l n6t con 5hi. T$ qui '<c +L n6t con tri bn tri n6t ch$ + n6t con 5hi bn 5hi n6t ch$2 mui n6t con '(c n&i +<i n6t ch$ c=$ n b\i mt o9n thng.

bF Duyt c3y nhI 5h3n %u<t th[7 thF t1 nt g#c tr)6c k0r[7rd[rf9 ThEo cch )uyt ny th1 n6t g&c ?L '(c )uyt tr'<c ?$u m<i )uyt n h$i c3y con. 8Tn c; +o th; t )uyt h$i c3y con m ch6ng t$ c h$i cch )uyt thEo th; t n6t g&c tr'<c7 Duyt n6t g&c2 )uyt c3y con tri2 )uyt c3y con 5hi Coot _Ert ightF Duyt n6t g&c2 )uyt c3y con 5hi2 )uyt c3y con tri Coot ight _ErtF

|B B CB %B B qB HB EB &B "

%u<t th[7 thF t1 nt g#c gia kIn7rd[rf9 ThEo cch )uyt ny th1 ch6ng t$ )uyt mt trong h$i c3y con tr'<c r%i n )uyt n6t g&c + ?$u m<i )uyt c3y con c`n l9i. 8Tn c; +o th; t )uyt h$i c3y con ch6ng t$ cSng ?L c h$i cch )uyt thEo th; t n6t g&c gi*$7 Duyt c3y con tri2 )uyt n6t g&c2 )uyt c3y con 5hi C_Ert oot ightF Duyt c3y con 5hi2 )uyt n6t g&c2 )uyt c3y con tri Cight oot _ErtF

%#

MN CU TRC D LIU

CB B B %B qB |B EB HB "B &

%u<t th[7 thF t1 nt g#c Kau k07Kt7rd[rf9 T'Hng t nh' )uyt thEo n6t g&c tr'<c2 trong cch )uyt ny th1 n6t g&c ?L '(c )uyt ?$u cBng ?o +<i )uyt h$i n6t g&c c3y con. Do +Gy2 cTn c; +o th; t )uyt h$i c3y con m ch6ng t$ cSng c h$i cch )uyt thEo th; t n6t g&c ?$u7 Duyt c3y con tri2 )uyt c3y con 5hi2 )uyt n6t g&c C_Ert ight ootF Duyt c3y con 5hi2 )uyt c3y con tri2 )uyt n6t g&c Cight _Ert ootF

"B &B EB HB qB B % B CB CB B qB %B B EB "B &B HB |

jF 83y nhI 5h3n t1m "im 83y t1m "im nhI 5h3n CT[YF l c3y nhI 5h3n m "ho t9i mui n6t c3y l<n hHn "ho c=$ t!t c cc n6t thuc c3y con bn tri + nh hHn "ho c=$ t!t c cc n6t thuc c3y con bn 5hi. 7u $8 D* liu l'u tr* t9i mui n6t c th r!t 5h;c t95 nh' l mt rEcor) chng h9n2 trong tr':ng h(5 ny "ho c=$ n6t '(c tnh )$ trn mt tr':ng no 2 t$ gi l tr':ng "ho. Tr':ng "ho 5hi ch;$ cc gi trI c th ?o ?nh '(c2 t;c l n 5hi l!y gi trI t@ mt tG5 h(5 c th; t. O* dP8 h1nh minh ho9 mt c3y T[Y c "ho l ?& nguyn C+<i qu$n h th; t trong tG5 ?& nguynF.

iui )6c9 Cng nh) tt c c-c cu trc :h-cB ta c7i cg< rPng l cg< TEN0 %4

MN CU TRC D LIU

Sh&n "Tt8 Trn c3y T[Y "h4ng c h$i n6t cBng "ho. 83y con c=$ mt c3y T[Y l c3y T[Y. [hi )uyt trung t Cin]r)ErF c3y T[Y t$ '(c mt )y c th; t tTng. 8hng h9n )uyt )uyt c3y con 5hi C_Ert oot d ightF c3y trn t$ c )y7 g2 ^c2 ^g2 ^f2 Xc2 XX2 jc2 jg2 lX. T+; :i2; ;bt nt c8 :h8a ch7 tr)6c tr$n cg< TEN0 M t1m "im ^ n6t c "ho - trn c3y T[Y2 t$ tin hnh t@ n6t g&c b{ng cch ?o ?nh "ho c=$ n6t g&c +<i "ho -. u n6t g&c b{ng Z__ th1 "h4ng c "ho - trn c3y. u - b{ng "ho c=$ n6t g&c th1 gii thuGt )@ng + t$ t1m '(c n6t ch;$ "ho -. u - l<n hHn "ho c=$ n6t g&c th1 t$ tin hnh Cmt cch quiF +ic t1m "ho trn c3y con bn 5hi. u - nh hHn "ho c=$ n6t g&c th1 t$ tin hnh Cmt cch quiF +ic t1m "ho - trn c3y con bn tri. O* dP8 t+; nt c8 :h7- =s tr7ng cg< _ ?$Kn ho ?nh jc +<i "ho n6t g&c l Xc2 +1 jc Xc +Gy t$ t1m ti5 trn c3y con bn 5hi2 t;c l c3y c n6t g&c c "ho l jg. ho ?nh jc +<i "ho c=$ n6t g&c l jg2 +1 jc p jg +Gy t$ t1m ti5 trn c3y con bn tri2 t;c l c3y c n6t g&c c "ho l XX. ho ?nh jc +<i "ho c=$ n6t g&c l XX2 +1 jc XX +Gy t$ t1m ti5 trn c3y con bn 5hi2 t;c l c3y c n6t g&c c "ho l jc. ho ?nh jc +<i "ho n6t g&c l jc2 jc q jc +Gy n 3y gii thuGt )@ng + t$ t1m '(c n6t ch;$ "ho c,n t1m.

Th$; ;bt nt c8 :h8a ch7 tr)6c v7 cg< TEN0 Ah dl9 th$; :h7- ! v7 cg< ho ?nh ^t +<i "ho c=$ n6t g&c l Xc2 +1 ^t p Xc +Gy t$ -Pt ti5 n c3y bn tri2 t;c l c3y c n6t g&c c "ho l^c. ho ?nh ^t +<i "ho c=$ n6t g&c l ^c2 +1 ^t ^c +Gy t$ -Pt ti5 n c3y bn 5hi2 t;c l c3y c n6t g&c c "ho l ^f. ho ?nh ^t +<i "ho c=$ n6t g&c l ^f2 +1 ^t ^f +Gy t$ -Pt ti5 n c3y bn 5hi. 6t con bn 5hi b{ng Z__2 ch;ng t r{ng "ho ^t ch'$ c trn c3y2 t$ thm n6t m<i ch;$ "ho ^t + n6t m<i ny l con bn 5hi c=$ n6t c "ho l ^f %5

MN CU TRC D LIU

lF ng )Wng c=$ c3y nhI Yh3n 3y )ng c3y on nhGn biu th;c ton hc thEo quy tOc chung nh' ?$u7 z^7 8hn ton t. lm g&c C l ton t. c 'u tin th!5 nh!t F zX7 ziu th;c bn tri ton t. g&c lm c3y con tri2 biu th;c bn 5hi ton t. g&c lm c3y con tri zj7 3y )ng c3y con tri + c3y con 5hi t$ thc hin lK5 l9i b'<c ^ Duyt c3y nhI 5h3n ton hc 7 t'Hng t nh' c3y nhI 5h3n th':ng

zi tG5 + c3u hi 7

Cgu !9 u Inh nghs$ + 83y 83y nhI 5h3n2 n6t g&c2 n6t trung gi$n2 m;c c=$ n6t2 n6t l2 bGc c=$ c3y2 bGc c=$ n6t2 chiu c$o c=$ c3y 0<i c3y ?$u hy -c Inh cc th4ng tin trn c=$ c3y 83u X7 8ho )y ?& ?$u7 g j ^t e t l k Xl ^j ^ y )ng c3y nhI 5h3n on nhGn )y trn. y )uyt c3y nhI 5h3n thEo cch du<t Kau2 du<t giaB du<t tr)6c 83u j7 8ho )y ?& ( ka'<fOkt-hfg ' kh-afkv':-[f y -3y )ng c3y nhI 5h3n on nhGn biu th;c trn. y )uyt 83y nhI 5h3n trn thEo cch du<t KauB du<t giaB du<t tr)6cX 83u l7 8ho biu th;c ton hc + )y ?& Z nh' ?$u7 ( kt'<fk<'hf - kh<'afOkv' h- [f o9 } ] != N ! d , !, ,! $F y -3y )ng h$i c3y nhI 5h3n on nhGn + Z cho. bF y )uyt c3y nhI 5h3n 2Z thEo cch du<t KauB du<t giaB du<t tr)6c. cF u nhGn -Pt + "t qu ?$u "hi )uyt c3y Z + \ c3u b.

%6

Вам также может понравиться