slide cau truc du lieu va giai thuat 2 - nguyen trung hoa - smith.n studio
Post on 05-Apr-2018
216 Views
Preview:
TRANSCRIPT
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
1/122
1
Cu trc d liuv gii thut
Ngi thc hin: GVC. TS. Nguyn Trung Ha
Email: ntrhoa@yahoo.comin thoi: 0904 162168
Ti liu tham kho
1. Cu trc d liuvg ii thut Xun Li, NXBHQGHN,2004
2. Cm nang thut tonR. Sedgewick, NXB Khoa hc v K
thut,1994
cng chng trnh
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
2/122
2
Chng 1. Gii thut
1.1. Khi nim gii thut
1.2. Thit k gii thut1.3. Phn tch v nh gi gii thut
1.1. Khi nim gii thut
1.1.1. Gii thut l g?
1.1.2. Cu trc d liu
1.1.3. Din t gii thut
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
3/122
3
1.1.1. Gii thut l g?
1.1.1. Gii thut l g?
V d m u Cho mt dy cc s thc a1,a2,,an. Tm gi tr
ln nht m ca cc s cho v chs ln nht itrong cc s t gi tr m.
V phi tm s ln nht vi ch s ln nht, ta sxut pht t s cui cng ca dy l an v s sosnh vi cc s trc , khi tm thy mt gi tr ln hn th ta ghi li (nh du) v li tip tc sosnh s ny vi cc s trc , cng vic sc thc hin cho n khi so vi s u tin.
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
4/122
4
1.1.1. Gii thut l g?
Gii thut l: Cch lm gii quyt bi ton
Mt dy c trnh t cc thao tc trn mt s itng no sao cho sau mt s hu hn bcthc hin ta t c kt qu mong mun.
Mt gii thut c u vo (Input): tp cc i tng (dliu)
u ra(Output): mt tp cc gi tr (thng tin)
Cc bcthc hinVo Ra
1.1.1. Gii thut l g?
Cc c trng ca gii thut Tnh c i lng vo/ra
Tnh xc nh
Tnh hu hn (tnh dng)
Tnh tng qut Tnh hiu qu
Mt vi c im cn lu Khng cn bit gi tr c th ca kt qu sau mi bc, ch
cn bit cch chuyn t bc trc ti bc sau;
Kt qu c th ca gii thut c th khng phi l kt qung (chnh xc) mc du phng php l ng.
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
5/122
5
1.1.2. Cu trc d liu
D liu c cu trc: Tp hp d liu C mi quan h vi nhau trong bi ton xc nh
La chn cu trc d liuvg ii thut thch hp: rtquan trng Vd: vit chng trnh tm kim s in thoi theo tn n
v Gii thut + Dliu = Chng trnh
Biu din cu trc d liu trong b nh: Lu tr trong
Thng qua cc bin Lu tr ngoi
Tp (nh kiu v khng nh kiu)
1.1.3. Din t gii thut
Ngn ng t nhin Ngn ng lit k cc bc
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
6/122
6
1.1.3. Din t gii thut
Gi ngn ng (my tnh) Ch thch: /**/ hoc // Cc on ca thut ton c th c nh s th t. K t v biu thc
26 ch ci Latin + 10 ch s
Php ton s hc: +, -, *, /, ^(ly tha), %
Php ton quan h: , ==, =, !=
Php ton logic: &&, ||, !
Gi tr logic: true, false
Bin c chs ha: ai, aij Th t u tin ca cc php ton:
nh trong ngn ng C v cc ngn ng chun khc Lnh gn: a = b; Khi lnh: { S1; S2; S3; }
1.1.3. Din t gii thut
Lnh iu kin:if (B) S;
if (B) {s1;s2;s3;}
if (B) S1; else S2;
Lnh lpfor (i = 0 ; i= 0; i--)S;
do S while (B);
while (B) S;
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
7/122
7
1.1.3. Din t gii thut
Lnh vo/ra:read ()
write ()
Chng trnh con:function ()
{
S1; S2; Sn;
return; // nu chng trnh con tr li mt gi tr
}
Gi chng trnh con: ()
1.1.3. Din t gii thut
lu Mt s k hiu quy c
Lnh iu khinc th l: Khi lnh Lnh iu kin Lnh lp
Btu/ kt thc
iu kin
Lnh vo, lnh ra
Lnh gn
Ni tip on lnh
Lung thc hin
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
8/122
8
1.1.3. Din t gii thut
Khi lnh C php:
{
S1;
S2;
S3;
}
S1
S2
S3
1.1.3. Din t gii thut
Lnh iu kin Cphp
If (iu_kin)
hnh_ng
if (B)
S1
Else
S2; S2 S1
B
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
9/122
9
1.1.3. Din t gii thut
Lnh lp Cphp:
while (B)
S;
for (khi_to;
iu_kin; cp_nht)hnh_ng
1.1.3. Din t gii thut
Do hnh_ngWhile (iu_kin)
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
10/122
10
1.1.3. Din t gii thut
Ngn ng lp trnh Ci t gii thut: ngn ng C/C++
1.2. Thit k gii thut
1.2.1. M un ha v vic gii quyt bi ton
1.2.2. Phng php tinh chnh tng bc(Stepwise Refinement)
1.2.3. V d
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
11/122
11
1.2.1. M un ha v vic gii quytbi ton
Module ha bi ton Chia bi ton ln (module chnh) thnh cc bi ton (module)
nh hn Mi module thc hin cng vic c th no Lp i lp li cho n khi cc module l c ng, n th v bit
cch gii quyt. => chin thut Chia tr
1.2.1. M un ha v vic gii quytbi ton
Thit kTopdown t nh xung, hay t khiqut n chi tit. Bc 1: Xc nh d kin u vo, yu cu t ra
Bc 2: Xc nh cc cng vic ch yu (mi cng vic
tng ng vi 1 module) Bc 3: Gii quyt tng cng vic mt cch chi tit
bng cch lp i lp li bc 1 + 2
V d: Bi ton Qun l v bo tr cc h s vhc bng ca sinh vin, thng k lp bo cotng kt.
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
12/122
12
1.2.1. M un ha v vic gii quytbi ton
Thit kTopdown Bc 1 Bc 1: Xc nh d kin u vo v cc yu cu
t ra u vo: Tp cc file bao gm cc thng tin vhc bng
ca sinh vin: M SV,imTB, Mc HB
Yu cu: Tm kimvh in th thng tin ca bt k sinh vin no
Cp nht thng tin ca mt sinh vin cho trc
In bn tng kt
1.2.1. M un ha v vic gii quytbi ton
Thit kTopdown Bc 2 Bc 2: Xc nh cc cng vic ch yu
c cc thng tin ca sinh vin t file vo b nh trong(c file)
X l cc thng tin (X l thng tin)
Lu thng tin cp nht vo file (Ghi file)
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
13/122
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
14/122
14
1.2.2 Phng php tinh chnh tng bc
Ban u gii thut c trnh by dng ngn ngt nhin
Chi tit ha dn tinh chnh hng v pha ngnng lp trnh
Giai on trung gian gi ngn ng
1.2.3. V d
Bi ton: Sp xp mt dy n s nguyn theo th t tng dn
Ngn ng t nhin ca gii thut: T dy s nguyn cha c sp xp chn r a s nh nht v
t vo u dy c sp xp
Loi s nguyn r akhi dy cha c sp xp Lp li cho n khi dy cha c sp xp l r ng
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
15/122
15
1.2.3. V d
Cu trc d liu: Dy s ban u c lu tr trong mt mng mt chiu
Dy sp xp s c lu trng vi dy cha sp xp
=> Gii thut: t s nh nht ca lt th i vo dy spxp bng cch i ch vi s th i trong dy
Gi ngn ng Tinh chnh ln 1
For (i=0; i
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
16/122
16
1.2.3. V d
Gii thut bc 2:i ch ai v aj, s dng mt bintrung chuyn
Tinh chnh bc 2tmp = ai;ai = aj;aj= tmp;
Tinh chnh ln 3function SapXep(a, n)
/* a l mng cc s nguyn, n l sphn tmng */
{For (i = 0; i
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
17/122
17
Gii b i tp
Ngn ng t nhin V phi tm s ln nht vi ch s ln nht, ta s xut pht t s cui
cng ca dy l an v s so snh vi cc s trc , khi tm thy mt gi tr ln hn th ta ghi li
(nh du) v li tip tc so snh s ny vi cc s trc , cng vic s c thc hin cho n khi so vi s u tin.
Tinh chnh ln u.0) xut pht t s cui cng ca dy l an (i=n) v tm thi coi gi tr ln
nht m l an, tt nhin lc ny k=n;1) Xt i=i-1;
2) Nu i=0, th vit ra k, m (vic tm l xong - thut ton kt thc).3) Nu ngc li th (so snh ai vi m)Nu ai > m th coi m l ai, k=iQuay li 1) (Chuyn qua xt s trc s th i).
Gii b i tp Tinh chnh ln 1:
i=n; m=ai i=i-1; While (i != 0) do
{(1). Nu m
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
18/122
18
1.3. Phn tch gii thut
1.3.1. Ti sao cn phn tch gii thut?
1.3.2. Phn tch thut ton1.3.3. phc tp gii thut
1.3.1.Ti sao cn phn tch gii thut?
Vit mt chng trnh chy thng l cha Chng trnh c th thc hin cha hiu qu! Nu chng trnh chy trn mt tp d liu ln, th
thi gian chy s l mt vn cn lu Vd: Bi ton la chn Cho mt dy gm N s, hy tm phn t ln th k,
vi k N. Thut ton1:
(1)c N s vo mt mng(2) Sp xp mng theo th t gim dn(3) Tr li phn t v tr th k
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
19/122
19
1.3.1.Ti sao cn phn tch gii thut?
Thut ton2:(1)c k phn t u tin vo mngvsp xp chng
theo th t gim dn
(2) Mi phn t cn li ch c mt ln
Nu phn t lnh hn phn t th k, b qua
Ngc li, t n vo v tr ph hp ca mng, y phnt hin ti ra khi mng.
(3) Phn t ti v tr th k l phn t cn tm.
1.3.1.Ti sao cn phn tch gii thut?
Thut ton no l tt hn khi N =100 v k = 100?
N =100 v k = 1?
iu g s xy ra khi N = 1,000,000 v k =500,000?
Cn c nhng thut ton tt hn?
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
20/122
20
1.3.2. Phn tch thut ton
i tng phn tch Chng ta chphn tch nhng thut tonng
Mt thut ton l ng? Nu,vi mt d liu u vo, thut ton dng v a r a kt qu
ng
Thut ton khng ng C th khng dng vi mt s d liu u vo
Dng nhng a r a kt qu sai
D on lng ti nguyn m thut ton yu cu Ti nguyn gm
B nh
Bng thng giao tip
Thi gian tnh Thi gian thc hin GT(thng l quan trng nht)
1.3.2. Phn tch thut ton
Thi gian thc hin gii thut Cc nhn t nh hng n thi gian tnh
My tnh Chng trnh dch Thut ton c s dng D liu uvoca thut ton
Gi trca d liu nh hng n thi gian tnh Thng thng, kch thc ca d liu u vo l nhn t
chnh quyt nh thi gian tnh Vi bi ton sp xp: s phn t cn sp xp Vi bi ton nhn ma trn: kch thc (s phn t) ca
2 ma trn
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
21/122
21
1.3.2. Phn tch thut ton
phc tp v thi gian Thut tonA mt 2 pht chy vi d liu u vo X. Thut ton B mt 1 pht 45 giy chy vi cng d liu X. Liu B c phi l thut ton tt hnA?
Khng hn l nh vy! Chkim tra vi mt b d liu X. C th vi d liu X ny B chy nhanh
hnA, nhng vi phn ln cc d liu khc B chy chm hnA. Thut tonA b ngt bi cc tin trnh khc. Thut ton B c chy trn my tnh ccu hnh cao hn.
Php o cn phi khng ph thuc vo my. o bng cch m s cc php tnh cs(php gn, php so
snh, cc php tnh s hc, v.v.). Ta thng k hiu s lng cc php tnh, cc thao tc c bn (gn,
so snh) ca mt thut ton l f(n).
1.3.2. Phn tch thut ton
Vd
Bi ton Tnh tng cc s nguyn t 1 n n. Thut ton 1
intsum = 0;for (int i = 1; i
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
22/122
22
1.3.2. Phn tch thut ton
Trng hp ti nht / trung bnh / tt nht Thi gian tnh t t nht: Thi gian ti thi u cn thit thc hin
thut ton vi mi b d liu u vo kch thc n. Thi gian tnh t i nht: Thi gian nhiu nht cn thit thc
hin thut ton vi mi b d liu u vo kch thc n. Thi gian trung bnh: cn thit thc hin thut ton trn tp
hu hn cc u vo kch thc n. Vic xc nh phc tp tnh ton nhiu khi cn ph thuc vo
tnh trng ca d liu. Do ta phi xt ti f(n) trong trng hpthun li nht, f(n) trong trng hp xu nht v f(n) trong
trng hp trung bnh. Tuy nhin vic xc nh f(n) trong trnghp trung bnh thng kh khn. V vy, trong cc trng hpf(n) xc nh kh khn ta ly f(n) trong trng hp xu nht nh gi phc tp tnh ton ca gii thut.
1.3.2. Phn tch thut ton
iu quan trng i vi gii thut l Mt bao nhiu giy chy vi d liu u vo c kch
thc n?
Thi gian tnh ph thuc vo kch thc d liu u vo
Mt s tc thay i ca thi gian tnh khi n tng. Thut ton c thi gian hng s: nu thi gian chy ca n
l khng i khi kch thc d liu thay i.
Thut ton c thi gian tuyn tnh: nu thi gian chy can t l thun vi n.
Thut ton c thi gian tnh l hm s m nu thi gianchy tng theo mt hm s m ca n.
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
23/122
23
1.3.3. phc tp gii thut
nh ngha bc O-ln Gi s f(n) v g(n) l hai hm xc nh trn mt tp hp cc s
nguyn dng. Ta ni rng f(n) c bc O-l n ca g(n), v vitf(n)=O(g(n)) hoc f=O(g) nu tn ti hng s C>0 sao cho vi n ln, cc hm f(n) v g(n) u dng, ng thi f(n)0
th f(n)=O(nd) Mt vi tnh cht
Nu f1(n)=Og(n), f2(n)=Og(n) th f1+f2=O(g)
Nu f1=O(g1), f2=O(g2) th f1f2=O(g1g2)
Nu tn ti gii hn th f=O(g)
Vi mi s >0 th log(n)=O(n)
)(
)(lim
ng
nf
n
1.3.3. phc tp gii thut
nh ngha Mt thut ton c gi l c phc tp a thc (hoc
gi l c thi gian a thc) nu s php tnh cn thit thc hin thut ton khng vt qu O(logd(n)), trong n
l ln ca d liu u vo v d l s nguyn dng no.
c lng phc tp ca gii thut ngi tathng so snh khi lng tnh ton f(n) ca mtgii thut vi mt hm g(n) no thng qua bc O-ln ca g(n), m thng thng g(n) l cc hm sauy (vi th t c tng ln dn):
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
24/122
24
1.3.3. phc tp gii thut
g(n)=1; thi gian hng s
g(n)=logn; thi gian logarit
g(n)=n; thi gian tuyn tnh
g(n)=nlogn;
g(n)=n2; bnh phng
g(n)=n2logn;
g(n)=n3; m 3
g(n)=2n; hm s m n
g(n)=n! giai tha
1.3.3. phc tp gii thut
Bng minh ha phc tp ca gii thut
phc tp f(n)
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
25/122
25
1.3.3. phc tp gii thut
nh ngha Gi s f(n) v g(n) l hai hm xc nh trn mt
tp hp cc s nguyn dng. Ta ni rng f(n) cbc Omega-ln ca g(n), v vit f(n)=(g(n)) hocf= (g) nu tn ti hng s C>0 sao cho vi n ln, cc hm f(n) v g(n) u dng, ng thif(n)>Cg(n).
iu c ngha l f(n) tng khng chm hn
g(n) vi n ln Tc tng ca f(n) ln hn hoc bng tc
tng ca g(n).
1.3.3. phc tp gii thut
nh ngha Gi s f(n) v g(n) l hai hm xc nh trn mt tp hp
cc s nguyn dng. Ta ni rng f(n) c bc Theta-lnca g(n), v vit f(n)=(g(n)) hoc f= (g) nu tha mn
ng thi f(n)= O(g(n)) v f(n)= (g(n)). iu c ngha l f(n) giao ng chung quanh g(n) vi n
ln
Tc tng ca f(n)bngtc tng ca g(n).
Mt squy tc Nu f(n) lmt a thc bc k, th f(n) = (nk).
Vi cc hm logarit logmn = (log n).
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
26/122
26
1.3.3. phc tp gii thut
Nh vy, xc nh phc tp ca mt gii thut khi bit hmc lng khi lng tnh ton cn thit ca gii thut , ta cn tnhgii hn ca ts
v nh gi theo quy tc sau
Nu gii hn ca ts
khng xc nh th khng kt lun c mi lin h gia phc tpf(n) v g(n)
)(
)(lim
ng
nf
n
=
=
=
=
)(&)(
)(
)(&)(
,
,0
0
)(
)(lim
gfgf
gf
gfgf
cng
nf
n
)()(lim
ngnf
n
V d 1:
f(n) = 60n2 + 9n+ 9 V
60n2 + 9n + 9 60n2 + 9n2 + n2 = 70n2 vi mi n1,Chn C1= 70 th 60n2+ 9n + 9 = O(n2).
V60n2 + 9n + 9 60n2 vi mi n 1,
Chn C2=60 th 60n2+ 9n + 9 = (n2).
V60n2 + 9n + 9 = O(n2) v 60n2 + 9n + 9 = (n2)
nn 60n2+ 9n + 9 = (n2).
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
27/122
27
1.3.3. phc tp gii thut
Xc nh phc tp Cc cu lnh k tip
Quy tc cng: phc tp ca khi lnh k tip l tng khilng tnh ton ca cc cu lnh.
Nu f1(n)=Og1(n), f2(n)=Og2(n) th f1+f2=Omax(g1,g2) Vi mt vng lp
phc tp l tng khi lng tnh ton s hc v so snhca cc cu lnh bn trong vng lp nhn vi s ln lp.
Vi cc vng lp lng nhau Quy tc nhn: phc tp ca khi lnh lp lng nhau l tngkhi lng tnh ton ca cc cu lnh trong mi vng lp
nhn vi tch ca cc kch thc ca cc vng lp.
Nu f1=O(g1), f2=O(g2) th f1f2=O(g1g2)
1.3.3. phc tp gii thut
Vd 1:Cu lnh gn x = x + 1; c thi gian thc hin bng C (hng s) nn c
nh gi l O(1). V d 2.
Cu lnh for (i = 1; i
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
28/122
28
Bi tp
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
29/122
29
Chng 2. Kiu d liuv m hnh d liu
2.1. Biu din d liu v cc kiu d liu n
2.2. Kiu d liu c cu trc Cu trc d liu2.2. H kiu ca ngn ng C2.3. M hnh d liuvk iu d liu tru tng
2.1. Biu din d liu vcc kiu d liu n
2.1.1. S cn thit ca vic biu din d liu2.1.2. Kiu d liu n2.1.3. T chc cc kiu d liu n trong my tnh
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
30/122
30
9 September 2010 2.1. Biu din d liu 59
2.1.1. S cn thit ca vic biu dind liu
D liu s cp - B iu din nh phn Bit, Byte, Word thanh ghi, Cc php tnh s hc v logic b x l s hc v logic
Cc kiu d liu S tru tng ha trong ton hc ca cc i tng trong th
gii hin thc l cc khi nim biu din c trng v mt slng v cc quan h ca cc i tng.
Cc d liu trong ngn ng lp trnh bc cao (FORTRAN,BASIC, PASSCAL, C ...), biu din c trng v mt s lng vcc quan h ca cc i tng.
Trn c s cc khi nim ton hc ny, ngi ta a votrong cc ngn ng lp trnh bc cao cc kiu d liu n (baogm cc kiu: s, k t, con tr...) v cc tc v (cc php ton)tc ng ln cc kiu c bn, cc hm th vin, cc chngtrnh con do ngi lp trnh vit thm.
9 September 2010 2.1. Biu din d liu 60
2.1.2. Kiu d liu n
Kiu d liu l g?
Trong cc ngn ng lp trnh bc cao, cc d liuc phn lp thnh cc lp d liu da vo bncht ca d liu. Mi mt lp d liu c gi l mt
kiu d liu. Kiu d liu l mt tp hp cc phn t cng chung
thuc tnh no
cc phn t ca tp c gi l cc gi tr ca kiu.
Thng thng trong mt h kiu ca mt ngn nglp trnh s c mt s kiu d liu c gi l kiu dliu n (single) hay kiu d liu phn t (atomic).
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
31/122
31
9 September 2010 2.1. Biu din d liu 61
2.1.2. Kiu d liu n
H kiu ca mt ngn ng bao gm cc kiu d liu n v cc phng php cho php ta t cc kiu d liu c
xy dng nn cc kiu d liu mi.
Cc ngn ng lp trnh khc nhau c th c cckiu d liu n khc nhau. Chng hn,
trong ngn ng Pascal, cc kiu d liu integer, real,boolean, char v cc kiu lit k c gi l cc ki u dliu n.
trong Fortran c cc kiu d liu l integer, real, logical,complex v double complex
trong C l char, int, float, double, con tr,
9 September 2010 2.1. Biu din d liu 62
2.1.2. Kiu d liu n
Cc c trng ca cc kiu d liu n1. Kch thc ca kiu: Mi gi tr thuc kiu chim dng mt
dung lng khng i b nh cn thit.
2. Phm vi ca kiu: Mi kiu d liu xc nh mt tp hp cnh cc gi tr thuc kiu. Chng hn, kiu integer trong ngn ng Pascal (int trong C) gm tt
c cc s nguyn c biu din bi hai byte, tc l gm cc snguyn t -32768 n + 32767.
3. Cc ton t trn kiu: Mi kiu d liu, cn phi xc nh mttp hp no cc php ton, cc hm chun c th thc hinc trn cc d liu ca kiu. Chng hn, vi kiu real, cc php ton c th thc hin c l
cc php ton s hc thng thng +, -, *, / , v cc php ton sosnh =, < >, < , < =, >, > =; cc hm chun abs(.), sin(.), round(.),.
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
32/122
32
9 September 2010 2.1. Biu din d liu 63
2.1.3.T chc cc kiu d liu ntrong my tnh
S nh phn S nh phn khng m
Chui n bit biu din00000000 0; 00000001 1;00000010 2; 00000011 3;00000100 4; 00000101 5;00000110 6; 00000111 7;00001000 8; 00001001 9;00100110 25+22+21=38; 00111011 1+21+23+24+25=59;
Chui c n bit s biu din cc s (khng m) trong phm vi 0n 2n-1, do nu c 8 bit (1 byte) s biu din c cc st 0 n 255 11111111(=28+27+26+25+24+23+22+2+1=128+64+32+16+8+4+2+1).
9 September 2010 2.1. Biu din d liu 64
2.1.3.T chc cc kiu d liu ntrong my tnh
S nh phn dngb1 c dng biu dinccs nguyn nh phn c c s mvs
khng m. S dng c biu din nh trn S m hon i tr 0 thnh 1, tr 1 thnh 0 trong biu din gi tr tuyt i
ca n
Nh vy, biu din mt s m x di dng nh phn b 1 ta thchin cc bc sau: Biu din x (gi tr tuyt i ca x) di dng nh phn khng m o bit
V d: -38 00100110 11011001 Chui c n bit s biu din cc s (khng m) trong phm vi t-2n-1+1 n 2n-1-1, do nu c 8 bit (1 byte) s biu din c cc s
t -127 n 127 Vi s nh phn 8 bit dng b 1 c hai gi tr 0 l 00000000 (0
dng) v 11111111 (0 m).
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
33/122
33
9 September 2010 2.1. Biu din d liu 65
2.1.3.T chc cc kiu d liu ntrong my tnh
S nh phn dng b 2 c dng biu din cc s nguyn nh phn c c
s m v s khng m. biu din mt s m x di dng nh phn b 2 ta
thc hinccbc sau: Biu din x di dng nh phn b 1 Cng thm 1
V d: -38 00100110 11011001 11011010 Chui c n bit s biu din cc s (khng m) trong
phm vi t -2n-1 n 2n-1-1, do nu c 8 bit (1 byte) sbiu din c cc s t -128 n 127 Vi s nh phn 8 bit dng b 2 c mt gi tr 0 l
00000000
9 September 2010 2.1. Biu din d liu 66
2.1.3.T chc cc kiu d liu ntrong my tnh
S nguyn dng thp phn khng m c t chc theo dng m ha thnh nh phn (binary
coded decimal). Mi k s thp phn c i bi mt xunh phn 4 bit tng ng
V d: 0 0000; 1 0001; 2 0010; 3 0011; 6 0110; 7 0111; 8 1000; 9 1001;
i ngc li, s thp phn m ha nh phn sangthp phn, ta thc hin chia xu bit thnh tng nhm 4 bit(t phi sang tri), sau i mi nhm thnh s thpphn.
V d: 0010 0110 26
1000 1001 0010 892
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
34/122
34
9 September 2010 2.1. Biu din d liu 67
2.1.3.T chc cc kiu d liu ntrong my tnh
S hu t(thc) c t chc bng mt chui c nh cc bit (32 bit) Mi s c chia thnh 3 thnh phn
Phn nh tr c biu din bi 24 bit dngb2 Phn c s c ngm nh l 10 Phn s m c biu din bi 8 bit dngb2
Biu din phn nh tr v phn m nhng bin ny tuntheo chun IEEE (Institute of Electrical and ElectronicsEngineers) v s thc du chm ng. Hu ht cc trnh
bin dch C hin nay u theo chun ny (Xem thm tronghc phn Kin trc my tnh). Ch rng biu din s thc ni chung chl biu din gn
ng, xp xbi mt s hu t.
9 September 2010 2.1. Biu din d liu 68
2.1.3.T chc cc kiu d liu ntrong my tnh
K t
Mi k t c t tng ng bi mt s nguyn trong bm ASCII bng chui 8 bit (1 byte), chng hn
00100110 &; 01000001 A;
01000010 B; 01000011 C Chui k t
Chui k t c t chc trong b nh bng dy m ASCIIca tngk t thuc chui Chng hn
01000001 01000010 AB 01000001 01000010 01000011 ABC
Vn cn tm hiu thm l vi mt dy nh phn, c ch no my tnh bit c u l s nguyn, u ls thc, u l xu kt, u l con tr.
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
35/122
35
2.2. Cc kiu d liu ccu trc
2.2.1. Cu trc d liu l g?
2.2.2. Ba phng php thng thng to CTDL2.2.3. Qu trnh gii mt bi ton trn my tnh
9 September 2010 2.1. Biu din d liu 70
2.2.1. Cu trc d liu l g?
Cc kiu d liu n cha mnh khai thc my tnh. Cu trc d liu l cc d liu phc tp, c xy dng nn
t cc d liu c, n gin hn bng cc phng phplin kt no .
Tu tng ng dng, ta s xy dng nhng cu trc d liu
no m cc thao tc cn thc hin l hiu qu nht c thc. C th hnh dung mt cu trc d liu c to nn t cc
khi, mi khi c th xem nh mt ci hp cha cc d liuthnh phn.
Mt cu trc d liubaogm Mt tp hp no cc dliu thnh phn, Cc d liu thnh phn ny c lin kt vi nhau bi mt
phng php no . Cc thao tc trn cu trc
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
36/122
36
9 September 2010 2.1. Biu din d liu 71
2.2.1. Cu trc d liu l g?
Nh vy, khi t chc mt cu trc d liu cn thit phiquan tm ti cc yu t sau: Cc d liu thnh phn tham gia to nn cu trc .
Cch b tr, sp xp cc thnh phn nh th no (ccu?).
Kh nng truy nhp v x l cc thao tc, cc php ton.
Cc d liu thnh phn c th l d liu n, hoc cngc th l mt cu trc d liu c xy dng.
Hu ht cc ngn ng lp trnh bc cao u cc cu trcd liu nh xu k t, mng, bn ghi, tp hp, tp.
9 September 2010 2.1. Biu din d liu 72
2.2.2. Ba phng php thng thngto CTDL
Sp xp cc t bo cha cc d liu cng mt kiuthnh mt dy Xu k t, Mng, Tp
Kt hp mt s t bo (c th cha cc d liu c kiu
khc nhau) thnh mt i tng Bn ghi (cu trc)
S dng con tr lin kt cc khi, mi khi l mt bnghi gm hai phn INFOR v LINK, phn INFOR c thc mt hay nhiu trng d liu, cn phn LINK c thcha mt hay nhiu con tr tr n cc khi khc cquan h vi khi . Danh sch
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
37/122
37
9 September 2010 2.1. Biu din d liu 73
2.2.3. Qu trnh gii mt bi ton trn mytnh
Qu trnh gii mt bi ton trn my tnh c th quyv 3 giai on k tip nh sau G 1
Xy dng m hnh m ta bi ton. Thit k thut ton hnh thc bng cch s dng cc thao tc,
cc php ton trn cc m hnh d liu.
G 2 Biu din cc m hnh d liu bi cc kiu d liu tru tng. Biu din cc thut ton bng gi ngn ng
G 3 La chn cu trc d liu Th hin thut ton bi cc thu tc (hm) trong ngn ng lp
trnh no o.
2.3. H kiu ca ngn ng C
2.3.1. Cc kiu d liu n trong C
2.3.2. Cc kiu d liu c cu trc trong C
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
38/122
38
9 September 2010 2.2. H kiu ca ngn ng C 75
2.3.1.Cc kiu d liu n trong C
Cc kiu d liu n trong C
Tuy nhin c th thm mt s kiu trong C bng cch thay ikhai bo cc kiu char, int thng qua vic b sung cc tin tsigned, unsigned, short, long (Xem Help ca C);
4 byte0..65535a ch nhcon tr
8 byte1.7E-308.. 1.7E308S thcdouble
4 byte3.4E-38.. 3.4E38S thcfloat
2 byte-32768..32767S nguynint
1 byte-128..127K tchar
Kch thcPhm vi nghaTn
9 September 2010 2.2. H kiu ca ngn ng C 76
2.3.1.Cc kiu d liu n trong C
Con tr Bin con tr l mt loi bin c bit, c kch thc c
nh, khng dng lu tr d liu m lu tr a chca mt bin khc nhm gip truy nhp v qun l d liuc lu tr trong vng nh dnh cho bin .
Kch thc bin con tr ph thuc cch biu din a chb nh. Trong my PC thng s dng hai thanh ghi 16bit biu th a chb nh nn kch thc ca bin contr l 4 byte.
Kiu con tr l g? Mi kiu d liu c tr bi mt bin con tr no th bin con tr
y phi c khai bo c th truy xut c d liu m n tr n. V vym c kiu con tr
C cc kiu con tr nguyn, con tr thc, con tr k t, con trmng,
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
39/122
39
9 September 2010 2.2. H kiu ca ngn ng C 77
2.3.1. Cc kiu d liu n trong C
Ch : Kiu con tr khng phi
l kiu lu gi gi tr ca con tr Kiu lu gi gi tr
ca con tr bao gicng l kiu c nh(nguyn khng m)
Kiu con tr l kiu cbit tng ng vi kiu
ca d liu c con try tr n
Bin con tr
P
Bin c trbi bin con tr
*P
9 September 2010 2.2. H kiu ca ngn ng C 78
2.3.2. Cc kiu d liu c cu trctrong C
Mng Mng l g?
Mng l mt tp hp hu hn cc phn t c cng kiu, csp xp theo mt trt t no y trong b nh.
Mt mng c c nh s phn t (gi l kch thc mng).Kch thc ny phi c khai bo tng minh trong phnkhai bo mng v n xc nh v tr v kch thc ca vngnh trong b nh c cp pht cho mng.
Cc phn t ca mng phi c cng kiu vac sp th tnhchs ca phn t.
Php ton c bn thc hin trong mng l truy nhp trc tipn tng v tr ca mng nh chs ca phn t c th lutr hoc thu nhn thng tin (ct vo hoc ly ra).
Chs ca phn t cn c gi l a chtng minh.
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
40/122
40
9 September 2010 2.2. H kiu ca ngn ng C 79
2.3.2. Cc kiu d liu c cu trctrong C
Chnh vic c th truy nhp trc tip (hay ngu nhin) votng phn t ca mng thng qua a chtng minh m thigian truy nhp n mi phn t ca mng l nh nhau,ngha l thi gian cn thit truy nhp n phn t th 5cng nh thi gian cn thit truy nhp n phn t th 75trong mt mng c n75 phn t.
Trong cc ngn ng lp trnh mt mng c khai bonh l mt bin, trong o gia tr ca n l mt tp hp cth t cc phn t, th toc xc nh theo mt quylut no o vac xc nh nh chs ca n. Nu mt chsc dng thi mng c gi l 1 chiu,
Nu nhiu ch s c dng ta gi l mng nhiu chiu (2-chiu, 3-chiu, ...).
9 September 2010 2.2. H kiu ca ngn ng C 80
2.3.2. Cc kiu d liu c cu trctrong C
Mng 1 chiu L mt dy lin tip Nmax nh lu tr cc phn t ca
mng. Mi nh l mt khi dnh lu tr d liuck iu lkiu phn t ca mng
Lu rng trong C v trong Pascal c s khc bit v mi lin h gia chs v th t ca cc phn t ca mng Vic kim tra trn ca mng (Pascal c kim tra, cn C th
khng)
Nmax-1ni210
x[n]x[i]x[2]x[1]x[0]
ch c s ch ca ph tc ch s i = ch cs+i*kch thc ca kiu ph t
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
41/122
41
9 September 2010 2.2. H kiu ca ngn ng C 81
2.3.2. Cc kiu d liu c cu trctrong C
Mng 2 chiu c kch thc mmaxnmax L mt dy lin tip gm mmaxnmax nh lu tr
cc phn t ca mng. Mi nh l mt khi dnh lu tr d liuck iu l kiu phn t ca mng
nh ngha tng t cho mng c s chiu lnhn 2.
X[mmax-1]
[nmax-1]
X[0][nmax-1]X[mmax-1][1]X[0][1]X[mmax-1][0]X[0][0]
(nmax)mmax-1
(nmax-1)mmax
2 mmax-1mmaxmmax-10
ch cs ch ca ph tc ch s i,j = ch cs+(jmmax+i)kch thc ca kiu ph t
9 September 2010 2.2. H kiu ca ngn ng C 82
2.3.2. Cc kiu d liu c cu trctrong C
Xu k t L mng 1 chiu cc k t
C im khc mng l ch c c ch xc
nh di ca xu Trong Pascal, l v tr ca thnh phn c chs 0
Trong C, l k t NUL (\0) cui xu kt thcxu.
Nh vy, mt xu k t mun c chiu di n cnphi tn n+1 byte.
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
42/122
42
9 September 2010 2.2. H kiu ca ngn ng C 83
2.3.2. Cc kiu d liu c cu trctrong C
Cu trc L mt kiu d liu bao gm nhiu thnh phn c
th thuc nhiu kiu d liu khc nhau. Mi thnhphn c gi l mt trng
Cc thnh phn c truy cp thng qua tn Tng ng vi khi nim cu trc trong C l khi
nim bn ghi trong Pascal C th thnh phn ca mt cu trc l mt cu
trc (con) Truy nhp cp trc c thc hin thng qua tn
bin cu trc v tn tr ng
2.4. M hnh d liu vkiu d liu tru tng
2.4.1. M hnh d liu2.4.2. Kiu d liu tru tng
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
43/122
43
9 September 2010
2.3. M hnh d liu v kiu d liu trutng 85
2.4.1. M hnh d liu
Cn xy dng m hnh d liu m t bi ton. Do tnh a dng ca cc bi ton cn x l bng MTT, chs dng cc kiu d liu c sn trong cc ngn ng lp
trnh bc cao l cha m t cc bi ton. Trong tin hc, m hnh d liu
l s tru tng ho cc c trng ca cc i tngthuc phm vi vn m ta quan tm
v bao gm cc mi quan h gia cc i tng . Mt m hnh d liu
s c biu din bi cu trc d liu. c th c biu hin bi nhiu cu trc d liu khc
nhau.
9 September 2010
2.3. M hnh d liu v kiu d liu trutng 86
2.4.2. Kiu d liu tru tng
Mt kiu dliu tru tng(abstract data type) l kt qu ca mt qu trnh tr u tng ha nhm xy
dng mt m hnh cho mt kiu d liu mi kt hp vicc tc v lin quan,
l mt m hnh d liu c xt cng vi mt s xc nhcc php ton no .
Chng hn, cc tp hp no , chxt vi cc php ton: thm mt phn t vo mt tp cho,
loi mt phn t khi mt tp hp cho,
tm xem mt phn t cho c nm trong mt tp hp haykhng, nuc th ni dung can lg
lp thnh kiu d liu tru tng (KDLTT) danh sch
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
44/122
44
9 September 2010
2.3. M hnh d liu v kiu d liu trutng 87
2.4.2. Kiu d liu tru tng
Cn kiu d liu tru tng hng i l m hnh dliu danh sch nhng chvi hai php ton chnh l: thm mt phn t mi vomt u danh sch,
loi mt phn t mt u khc ca danh sch.
Biu din s hu ta/b vi cc tc v cng, nhn, chiahai s hu ts c thc hin nh th no? M t d liu: t s, mu s (l cc s nguyn)
Cc tc v:
Cng: cong(s hu t1, s hu t2) Nhp a v b l t v mu tng ng ca s hu t1
Nhp c v d l t v mu tng ng ca s hu t2
Xut ad+bc l t ca tng; bd l mu ca tng
9 September 2010
2.3. M hnh d liu v kiu d liu trutng 88
2.4.2. Kiu d liu tru tng
Nhn: nhan(s hu t1, s hu t2)
Nhp a v b l t v mu tng ng ca s hu t1
Nhp c v d l t v mu tng ng ca s hu t2
Xut ac l t ca tch; bd l mu ca tch
Chia: chia(s hu t1, s hu t2) Nhp a v b l t v mu tng ng ca s hu t1
Nhp c v d l t v mu tng ng ca s hu t2
Xut ad l t ca thng; bc l mu ca thng
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
45/122
45
9 September 2010
2.3. M hnh d liu v kiu d liu trutng 89
2.4.2. Kiu d liu tru tng
Chng ta s nghin cu k mt s kiu d liu trutng quan trng nht : Danh sch tuyn tnh (hng),
Ngn xp (stack),
Hng i (Queue).
Cy (Tree).
Vi mi kiu d liu tru tng, cc cu trc d liu
biu din n s c nghin cu. Chng ta cngs tm hiu cc php ton trong tng cch ci t vnh gi hiu qu ca cc thut ton thao tc trn n.
Chng 3.Gii thut quy
3.1. Khi nim gii thut quy3.2. Thit k gii thut quy3.3. quy v lp
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
46/122
46
3.1. Khi nim gii thut quy
Khi nim quyMt i tng c coi l quy nu n bao gm chnh n nh l
mt b phn ca n hoc n c nh ngha di dng cachnh n.
Gii thut quyL gii thut trong bi ton T c thc hin bng T c dng
ging nh T Gii thut chung:
Bc c s: Nu vn tha iu kin dng th gii trc tip Bc quy: Nu khng tha th gii bi ton ng dng vi kch
thc nh hn.
Gii thut quy phi thamn2 iu kin: Phi c im dng: l trng hp c s (suy bin) nh nht, cthc hin khng cn quy
Phi lm cho kch thc bi ton thu nh hn: do lm cho biton gim dn n trng hp c s
3.1. Khi nim gii thut quy
Th tc quy: C li gi n chnh n ( quy trc tip) hoc cha li gi n
th tc khc v th tc ny cha li gi n n ( quy gin tip) Sau mi ln gi, kch thc bi ton thu nh hn Phi kim tra im dng
V d Tm file trong th mc (trn my tnh)
Nu khng c th mc con, tm trong danh sch file Nuc th mc con, tm file trong th mc (con)
Tm t trong t in (ln) Nu t in l mt trang, tm trong trang Nu khng,
Chia i t in thnh hai (t in) Xc nh t cn tm thuc t in mi Tm t trong t in (nh)
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
47/122
47
3.2. Thit k gii thut quy
Thng s ha bi ton Tm cc thng s biu th kch thc ca bi ton. Cc
thng s ny quyt nh phc tp ca bi ton
Tm iu kin dng L (cc) trng hp gii khng quy (trng hp c s) Thng l (cc) trng hp bi ton c kch thc nh
nht V d: Thiu trng hp c s -> bi ton khng dng.
Phn r bi ton thnh cc thnh phn: Hoc l tr ng hp khng quy Hoc l bi ton trn nhng kch thc nh hn. V d: khng th phn r theo kiu n!=(n+1)!/(n+1)
Hot ng ca gii thut quy tnhgiai tha n
V d Tnh n! (Giaithua(n))
Nu n=0 th n!=1 Nu khng th n!=(n-1)! *n
Vic tnh giaithua(4) thng qua quy c th xem nh c thchin bi 4 my: My 4 tnh (4 * 3!) -> khi ng my 3 My 3 tnh (3 * 2!) -> khi ng my 2 My 2 tnh (2 * 1!) -> khi ng my 1 My 1 tnh (1 * 0!) -> trng hp c s
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
48/122
48
Hot ng ca gii thut quy tnhgiai tha n
1 Giaithua(0)
2 Giaithua(1)
3 Giaithua(2)
4 Giaithua(3)
Giaithua(4)=24
=6
=2
=1
=1
3.2. Thit k gii thut quy
Tnh tng s=1+2+3++(n-1)+n Nu n=1 th s=1
Nu khng th s=s(n-1)+n
Tnh nx
Nu n=1 th nx=x Nu khng th nx=(n-1)x+x
Tnh xn
Nu n=0 th xn=1
Nu khng th xn=xn-1x
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
49/122
49
3.2. Thit k gii thut quy
Bi ton thp H ni C n a kch thc nh dn ang xp thnh chng. Hy
chuyn chng a sang v tr khc vi iu kin mi lnchuyn 1 a, khng t a to ln trn a nh v ch cs dng mt chng trung gian (chng tm).
Trng hp n gin nht 1 a Chuyn a sang chng ch
Trng hp c hai a Chuyn a nh (trn) sang chng tm
Chuyn a ln (y) sang chng ch
Chuyn a nh (tm) sang chng ch
3.2. Thit k gii thut quy
Trng hp c nhiu hn 2 a (lm tng t) Chuyn chng trn sang chng tm
Chuyn a y sang chng ch
Chuyn chng tm sang chng ch
Chng trnh con Cn mt tham s kch thc n v 3 tham s v tr A, B, C
ChuyenDia(n,A,B,C) k hiu l (CD(n,A,B,C))
if (n=1) chuyen tA sang C k hiu l (C1D(A,C))
else
ChuyenDia(n-1, A,C,B) /* C rng */
Chuyen tA sang C
ChuyenDia(n-1,B,A,C)
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
50/122
50
Hot ng ca gii thut quychuyn a trong bi ton thp H ni
Vi n=4, ta phn tch qu trnh thc hin nh sau
CD(4,A,B,C)
CD(3,A,C,B) CD(3,B,A,C)
CD(2,A,B,C) CD(2,C,A,B) CD(2,B,C,A) CD(2,A,B,C)
C1D(B,C) C1D(A,B) C1D(C,A) C1D(B,C)
C1D(A,B) C1D(C,A) C1D(B,C) C1D(A,B)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Hot ng ca gii thut quychuyn a trong bi ton thp H ni
Chng A Chng B Chng C
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
51/122
51
Hot ng ca gii thut quychuyn a trong bi ton thp H ni
Chng A Chng C Chng B
3.3. quy v lp
Hiu lc ca quy u im:
n gin, ngn gn, d vit code
Bi ton vit c di dng cng thc quy => ngin
Mt s gii thut quy cng c hiu lc cao, v d nhQuick sort
Nhc im: Tn khng gian nh
Tc chm
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
52/122
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
53/122
53
3.3. quy v lp
nh gi gii thut Thp H ni Gi f(n) l s ln chuyn a cn thit chuyn n a t
ct1 sang ct 3.Ta c f(1) = 1;
f(n) = 2 f(n1) + 1, if n > 1= 2(2 f(n2) + 1) + 1=22 f(n-2) + 2 + 1= = 2n-1 f(1) + 2n-2 + + 2 + 1= 2n-1+ 2n-2+ + 2 + 1= 2n1
Nh vy, s ln chuyn a theo gii thut quy l quln, nu mt ln chuyn 1 a mt 1 giy th mt ngichuyn 64 a s mt 5 1011 nm= 25 ln tui ca v tr.Khi chuyn xong chng a th n ngy tn th!
3.3. quy v lp
Ci t danh sch lin kt bnggii thut quy
Type
kieudl=string[20];
tropt=^kieupt;
kieupt=record
nd:kieudl;
t:tropt;
end;
Var
goc:tropt;
d:pointer;
pt:kieudl;
Procedure xuly(nut:tropt);
begin
write(nut^.nd);
end;
Procedure xltruoc(nut:tropt);
Begin
if nutnil then
begin
xuly(nut);
xltruoc(nut^.t);
end; End;
Procedure xlsau(nut:tropt);
Begin
if nutnil then
begin
xlsau(nut^.t);
xuly(nut);
end;
End;
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
54/122
54
3.3. quy v lp
Procedure Tim_bosung(vargoc:tropt; st:kieudl);
Begin
if goc=nil then
Begin
New(goc);
with goc^ do
begin
nd:=st;
t:=nil;
end;
end
else with goc^ do
if stnd thentim_bosung(t,st)
else writeln('Da co du lieu');
End;
BEGIN
writeln('Vi du ve danh sach tuyentinh ');
mark(d); goc:=nil;
repeat
write('Nhap du lieu (Enter de kethuc): '); readln(pt);
if length(pt)>0 thentim_bosung(goc,pt)
until length(pt)=0;
writeln;
writeln('Duyet truoc'); xltruoc(goc);
writeln;
writeln('Duyet sau'); xlsau(goc); writeln;
release(d);
readln;
END.
3.3. quy v lp
Nhiu gii thut quy uc th thay th bng gii thut khng quy (s dng vng lp)
Mi cng thc truy hi uc th tnh c bng gii thut quy. Mi cng thc truy hi cp k u c th tnh c qua php lp
bng cch s dng k bin ph. Hiu qu hn nhiu khi dng quy.
V d Tnh fibonaci(n) thng qua gii thut lp
f0=0; fibo=f1=1for (i=1;i
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
55/122
55
3.4. quy v quy np ton hc
T tm hiu
Chng 4.Danh sch tuyn tnh
4.1. Khi nim v danh sch4.2. Danh sch lin kt n4.3. Cc thao tc c bn trn danh sch lin kt n4.4. Cc dng khc ca danh sch lin kt4.5. S dng danh sch mc ni V d bi ton cng a thc4.6. Ngn xp v Hng i
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
56/122
56
4.1. Khi nim vdanh sch
4.1.1. Cc khi nim danh sch, danh
sch tuyn tnh, danh sch lin kt4.1.2. Lu tr danh sch tuyn tnh
9-Sep-10 3.1. Khi nim v danh sch 112
4.1.1.Cc khi nim danh sch, danhsch tuyn tnh, danh sch lin kt
Danh schL tp hp cc phn t d liu c cng kiu c cu trc, sp xp
theo mt trt t no Danh sch nhng ngi n khm bnh
Ban u cha c ai C ngi mi n C ngi khm xong i v
Danh sch sinh vin trong lp hc phn Ban u cha c ai (cha ai ng k) B sung thm (ln lt b sung sinh vin) Loi b (do nhu cu sinh vin hoc do thiu iu kin tin quyt).
Danh sch cc th mc trong a D Ban u cha c th mc no Ln lt to cc th mc Loi b mt s th mc khng cn na
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
57/122
57
9-Sep-10 3.1. Khi nim v danh sch 113
4.1.1.Cc khi nim danh sch, danhsch tuyn tnh, danh sch lin kt
Danh sch tuyn tnh
L tp hp cc phn t d liu c cng kiuc cu trc, sp xp (logic) theo mt trt ttuyn tnh
Nh vy, danh sch tuyn tnh l Mt chui cc phn t
Tn ti phn t u v phn t cui
Mi phn t c phn t trcvphn t sau
Phn t 1 Phn t 2 Phn t 3 Phn t n
9-Sep-10 3.1. Khi nim v danh sch 114
4.1.1.Cc khi nim danh sch, danhsch tuyn tnh, danh sch lin kt
Mt danh sch tuyn tnh c S phn t bin i Mt phn t thng lmt bn ghi (record trong Pascal) hoc
mt cu trc (struct trong C) Cc thao tc thng s dng nht
Thm phn t Xa phn t Duyt danh sch
Cc thao tc khc: Sp xp Tm kim Ghp 2 danh sch Tch 1 danh sch thnh nhiu danh sch Sao chp danh sch Cp nht
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
58/122
58
9-Sep-10 3.1. Khi nim v danh sch 115
4.1.1.Cc khi nim danh sch, danhsch tuyn tnh, danh sch lin kt
Phn loi danh sch tuyn tnh
9-Sep-10 3.1. Khi nim v danh sch 116
4.1.1.Cc khi nim danh sch, danhsch tuyn tnh, danh sch lin kt
Danh sch lin kt
L tp hp cc phn t d liu c cng kiu bn ghi (cutrc), trong c t nht mt trng thuc kiu con tr lmnhim v tr n phn t khc trong danh sch
S cu to: c nhiu dng ty theo cu trc, c ch cas lin kt (S trnh by chi tit sau).
V d:
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
59/122
59
9-Sep-10 3.1. Khi nim v danh sch 117
4.1.2. Lu tr danh sch tuyn tnh
Lu tr k tip (s dng mng) S dng mng 1 chiu
u im Tm kim d dng (tun t hoc tm kim nh phn) Truy cp nhanh (ngunhin, thi gian truy cp n mi phn
t l nh nhau) Duyt cc phn t d dng s dng chs:
for(i = 0; i Khng bit
trc s phn t Tn b nh v phi cp pht nhiu hn cn thit gi ch.
9-Sep-10 3.1. Khi nim v danh sch 118
4.1.2. Lu tr danh sch tuyn tnh
Thm mt phn t th ivo mng Chuyn cc phn t t I
n n xung cc v tr t
i+1 n n+1; Thm phn t cn thm
vo v tr th i.
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
60/122
60
9-Sep-10 3.1. Khi nim v danh sch 119
4.1.2. Lu tr danh sch tuyn tnh
Xa phn t th i khimng Chuyn cc phn t t
i+1 n n vo cc v tr ti n n-1
Khng hiu qu v lun phidch chuyn phn t. n/2 ln dch chuyn
(trung bnh)
Cc thao tc thm vxa c thi gian chy lO(n).
Vy cn thit phi Lu trmc ni (s dng danhsch lin kt)
4.2. Danh sch linkt n
4.2.1. Bn ghi/cu trc cha con tr (bnghi/cu trc t tr)
4.2.2. nh ngha v s cu to danh schlin kt n
4.2.3. Mt s lu
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
61/122
61
9-Sep-10 3.2. Danh sch lin kt n 121
4.2.1. Bn ghi/cu trc cha con tr (bnghi/cu trc t tr)
Bn ghi/cu trc t tr l c s ci t danh sch linkt bng cch to ra chui cc phn t c lin kt vinhau qua trng con tr lu gi a ch.
Mi bn ghi t tr s c coi l mt nt (node) trong mtcu trc danh sch
Mi nt phi bao gm D liu (data)
Con tr mc ni ti nt tip theo trong danh sch (a chca
nt tip theo).
9-Sep-10 3.2. Danh sch lin kt n 122
4.2.2.nh ngha v s cu todanh sch lin kt n
nh nghaL tp hp cc phn t d liu c cng kiu bn ghi, trong
c mt trng thuc kiu con tr lm nhim v trn (kt ni vi) phn t khc trong danh sch
S cu to chung
Mi danh sch nht thit phi km theo mt con tr (contr danh sch) qun l danh sch.
a b c d
(con tr danh sch) P
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
62/122
62
9-Sep-10 3.2. Danh sch lin kt n 123
4.2.2. nh ngha v s cu todanh sch lin kt n
Nh vy Mt danh sch lin kt n l mt chui cc phn t, gi l
nt, c mc ni vi nhau
Mi nt phi baogm
D liu
Mc ni (a ch) ti nt tip theo trong danh sch
Phi c mt con tr lu gi a ch ca mt nt trongdanh sch, sao cho t c th truy cp c n mi ntkhc ca danh sch
9-Sep-10 3.2. Danh sch lin kt n 124
4.2.3. Mt s lu
Nu khng c quy c g th node pha con tr danh sch c gi lnode u tin, node pha kia c gi l node cui cng ca danh sch.Con tr trong Node cui cng tr vo Nil (Null)
Mt s ngi thng nhc n hai loi danh sch FIFO v LIFO nh l haidanh sch lin kt n ni chung. Tuy nhin c s nhm ln gia hai giithut khc nhau to danh sch vi hai kiuc bit ca danh sch.
Mt vi quy c Nu th t cc phn t ca danh sch c thit lp (theo th t thi gian)
l d,c,b,a th ta s gi gii thut to danh sch l gii thut LIFO
Nu th t cc phn t ca danh sch c thit lp (theo th t thi gian)l a,b,c,d th ta s gi gii thut to danh sch l gii thut FIFO, Trong giithut ny ta cn thm mt con tr na tr vo d.
a b c
a b c d
d
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
63/122
63
4.3. Cc thao tc c bn trndanh sch lin kt n
4.3.1. Gii thiu chung4.3.2. Khi to v lp danh sch lin kt n
4.2.3. Duyt danh sch4.3.4. Sp xp danh sch4.3.5. Tm kim trong danh sch4.3.6. B sung phn t vo danh sch4.3.7. Loi b mt phn t ra khi danh sch
9-Sep-10
3.3. Cc thao tc cbn trn danh sch linkt n 126
4.3.1. Gii thiu chung
Gii thiu cc thao tc Khi to v lp danh sch
Duyt danh sch
Sp xp danh sch
Tm kim trong danh sch B sung vo danh sch
Loi b khi danh sch
Sao chp v kt ni
Cc thao tc ny thng c lp i lp li nhiu lntrong mt chng trnh c ci t danh sch lin ktn, do chng thng c vit di dng chngtrnh con s dng nhiu ln.
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
64/122
64
9-Sep-10
3.3. Cc thao tc cbn trn danh sch linkt n 127
4.3.1. Gii thiu chung
Mt s quy c quan trng Con tr danh sch: TroDS, TroDS1, (thng l
con tr tng qut khng kiu) Tr n mt node (tr c kiu): Tam, Tam1, D liu ca node c tr bi Tam: DL(Tam) Con tr lin kt ca node c tr bi Tam:
Ke(Tam);
Cp mt node v lu a chvo Tam:TamAvail
9-Sep-10
3.3. Cc thao tc cbn trn danh sch linkt n 128
4.3.2. Khi to v lp danh sch(Gi i thu t ki u LIFO t o danh sch)
TroDS=NULL
Tam
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
65/122
65
9-Sep-10
3.3. Cc thao tc cbn trn danh sch linkt n 129
Ke(Tam)=NULL
4.3.2. Khi to v lp danh sch(Gi i thu t ki u FIFO t o danh sch)
TroDS=NULL
Tam
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
66/122
66
9-Sep-10
3.3. Cc thao tc cbn trn danh sch linkt n 131
4.3.4. Sp xp danh sch
Nhc li thut ton ni bt sp xp dy(mng):
Vi i=1 n n-1 (t u n p cht)Vi j:=i+1 to n (t ngay sau i n ht)
Nu a[i]>a[j] (khng tha iu kin sp xp) thTro a[i] v a[j]
Ta s bt chc thut ton trn, p dng vo
danh sch lin kt Cc bin chy i, j thut ton trn ng vai tr
cung cp cc a chca cc phn t ca dy.
9-Sep-10
3.3. Cc thao tc cbn trn danh sch linkt n 132
4.3.4. Sp xp danh sch
Vi thut ton sp xp danh sch lin kt,bin chy thut ton ta s xy dng l ccbin con tr
Tm1, Tm2 Qu trnh chy
Tm1: T u (tr danh sch) n p cht(tam1^.ke=NULL)
Tm2: t ngay sau tm1 n ht (NULL)
T ta c g ii thut sau:
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
67/122
67
9-Sep-10
3.3. Cc thao tc cbn trn danh sch linkt n 133
4.3.4. Sp xp danh sch
Gii thut sp xpTm1:=TroDS;
Khi tm1^.knil thc hinTm2:=tm1^.k;Khi tm2nil thc hin
Nu tm1^.nd>tm2^.ndth
tro tm1^.nd vtm2^.nd
Tm2:=tm2^.k;Tm1:=tm1^.k;
Lu khi vit chng trnh conth tham s duy nht cachng trnh con l con trdanh sch, n l tham tr.
Bt u
Tam1=TroDS
Ke(Tam1)!=NULL
Tam2=Ke(Tam1)
Tro DL(Tam1) v DL(tam2)
Kt thc
+
Tam2!=NULL
DL(Tam1)>DL(Tam2)
Tam2=Ke(Tam2)
Tam1=Ke(Tam1)
+
+
_
_
_
9-Sep-10
3.3. Cc thao tc cbn trn danh sch linkt n 134
Tm kim thc cht l duyt v so snh kha tm kim(vi thng tin ca d liu thuc trng tng ng).
C th duyt ht hoc khng ht ty theo yu cu tmkim
Lu khi chn kiu vng lp v iu kin dng Chn while hay repeat?
Ty thuc vo tr ng thi ban u v yu cu tm kim!
iu kin dng thng l biu thc cng logic or
Dng th tc: u ra l thng bo trc tip hoc l thambin truyn gi tr tm c ra ngoi.
Dng hm boolean: thng s dng tr li cu hic/khng?
4.3.5. Tm kim trong danh sch
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
68/122
68
9-Sep-10
3.3. Cc thao tc cbn trn danh sch linkt n 135
4.3.5. Tm kim trong danh sch Thu t ton chung
Tm:= tr danh sch;Khi (tm nil) hoc (cha
tha yu cu) thc hintm:=tm^.k;
Nu thayucu th
gn tr cho bin ra hoc/vthng bo c
nu khng tha th thng
bo khng V d?
Bt u
Tm=TroDS
(Tm !=NULL)V(cha tha yu cu)
Gn tr tm ccho bin ra
Tm=Ke(Tm)
Kt thc
+_
tha yu cu
Khng tm
c
_+
9-Sep-10
3.3. Cc thao tc cbn trn danh sch linkt n 136
4.3.6. B sung mt phn t vo danh sch
t bi ton:B sung g ? (mt phn t vo danh sch)
B sung vo u? (vo danh sch ang c tr (qun l) bi trods)
V tr no? (cn mt con tr Q na?)
Bn tri hay bn phi Q^?
Trc hay sau Q^?
Vy ta c cc bi ton sau:
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
69/122
69
9-Sep-10
3.3. Cc thao tc cbn trn danh sch linkt n 137
4.3.6. B sung mt phn t vo danh sch
Bi ton 1: Xy dng gii thut v vit chng trnh con b sung
phn t d liu pt vo danh sch lin kt n angc tr bi trods, ti v tr ang c tr bi con tr Q,sao cho sau khi b sung con tr k ca phn t mi cgi tr bng Q.
Tm t tn l Bosungtruoc(...)c
a b d e
Q
Q^
Trods
9-Sep-10
3.3. Cc thao tc cbn trn danh sch linkt n 138
4.3.6. B sung mt phn t vo danh sch
c
a
b
d
e
TrodsBt u
Tam
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
70/122
70
9-Sep-10
3.3. Cc thao tc cbn trn danh sch linkt n 139
4.3.6. B sung mt phn t vo danh sch
Bi ton 2: Vit chng trnh con b sung phn t d liu pt vo
danh sch lin kt n ang c tr bi trods, ti v trang c tr bi con tr Q, sao cho sau khi b sung contr k ca phn t c tr bi Q tr vo phn t vac b sung.
Tm t tn l Bosungsau(...)
a b c e
Q
Q^
Trodsd
9-Sep-10
3.3. Cc thao tc cbn trn danh sch linkt n 140
4.3.6. B sung mt phn t vo danh sch
Bt u
Tam
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
71/122
71
9-Sep-10
3.3. Cc thao tc cbn trn danh sch linkt n 141
4.3.7. Loi b khi danh sch lin kt mt phn t
Loi b trong danh sch no?
Loi b phn t no? (v tr no)
Bi ton: Loi b mt phn t ra khi danhsch ang c tr bi Trods ti v tr ctr bi Q
Chng trnh con cn c hai tham s: tham
s TroDS v tham s con tr Q, trong TroDS cn thit l tham bin
9-Sep-10
3.3. Cc thao tc cbn trn danh sch linkt n 142
4.3.7. Loi b khi danh sch lin kt mt phn t
a
b
c
d
Bt u
Tam=Ke(Tam) Ke(Tam)=Ke(Q)
Q=>Avail
Kt thc
Q==TroDS
Ke(Tam)!=Q
TroDS=Ke(Q)
_
_
+
+
Tam=TroDS
TroDS
Q
Tam
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
72/122
72
4.4. Cc dng khc ca danhsch lin kt tuyn tnh
4.4.1. Danh sch ni vng
4.4.2. Danh sch lin kt i
4.4.1. Danh sch ni vng
L danh sch lin kt n
Nt cui cng cha a chca nt u tin(Con tr ca nt cui khng tr vo NULL m
tr n nt u tin ca danh sch).
L danh sch lin kt n, sao cho vic ktni gia cc phn t to thnh mt chu trnh.
a b c d
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
73/122
73
4.4.1. Danh sch ni vng
Nhn xt: trong danh sch ni vng mi phn tu c vai tr nh nhau trong vic kt ni v contr dng qun l danh sch c th tr n mtphn t bt k trong danh sch
Mt u im ca danh sch ni vng l tr danhsch c th di chuyn c.
Khi no th kt thc duyt? (kim tra Ke(tam)== TroDS?)
Bi tp: Vit gii thut to danh sch nivng, duyt v xem danh sch, sp xp danhsch.
4.4.2. Danh sch lin kt i
Khi nim: Danh sch lin kt i l danh sch tuyn tnh,
trong mi nt c cha hai con tr lm nhim vtr n nt tr c v nt sau n trong danh sch
S cu to: Mi nt
Danh sch
a b c d
TroDS
KetruocKesau
DL
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
74/122
74
4.4.2. Danh sch lin kt i
Mi nt khng ch ni n nt tip theo mcn ni n nt tr c n
C 2 con tr tr ti NULL: ti nt u v ntcui ca danh sch
u im: ti mt nt c th thm nt tr c n mt cch d
dng. Cho php duyt danh sch theo chiu ngc li Con tr danh sch khng cn thit phi cht ti
mt im duy nht
4.4.2. Danh sch lin kt i
Khai bo kiu ci t danh sch lin kti
typedef struct Node{
DL;
struct Node* Kesau;
struct Node* Ketruoc;
} kieupt;
Ketruoc
Kesau
DL
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
75/122
75
4.4.2. Danh sch lin kt i
Thm nt nm ngay trc phn t c tr bi Q (trnghp tng qut): Xin cp vng nh mi Nhp d liu mi Nu TroDS==NULL
To 2 kt ni t phn t mi ti NULL TroDS=Tam
Nu khng, Nu Q==TroDS To mt kt ni (sau) n phn t u ang tr bi Q To kt ni (trc) ti NULL
Thay kt ni trc ca Q Thay a chca TroDS
Nu khng, To 2 kt ni t phn t mi ti danh sch Thay 2 kt ni t danh sch ni ti phn t mi
Bt u
Tam
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
76/122
76
4.4.2. Danh sch lin kt i
Loi b nt c tr bi Q Nu Q==Trods
Nu (Kesau(Q)!=NULL) Ketruoc(Kesau(Q))=NULL
TroDS=Kesau(Q)
Nu khng, Nu (Kesau(Q)=NULL) Kesau(Ketruoc(Q))=NULL
Nu khng
Ketruoc(Kesau(Q))=Ketruoc(Q) Kesau(Ketruoc(Q))=Kesau(Q)
Q=>Avail
Bt u TroDSa
b
c
d
Q
Q==TroDS _+
Ketruoc(Kesau(Q))=NULL
TroDS=(Kesau(Q))
Kesau(Q)==NULL_
Kesau(Ketruoc(Q))=NULL
Ketruoc(Kesau(Q))=Ketruoc(Q)
Kesau(Ketruoc(Q))=Kesau(Q)
Q=>Avail
Kt thc
+Kesau(Q)==NULL _+
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
77/122
77
4.5. V d s dng danhsch lin kt Ci t a
thc
T c v t ci t
4.6. Ngn xp vHng i
4.6.1. Ngn xp v cc thao tc c bn trn cc ngn xp4.6.2. M hnh thit k ngn xp4.6.3. ng dng ca ngn xp4.6.4. Hng i v cc thao tc c bn trn cc hng i4.6.5. Ci t hng i
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
78/122
78
4.6.1. Ngn xp v cc thao tc cbn trn cc ngn xp
nh ngha: Mt ngn xp (stack) l mt m hnh (c cu) m cc tc
ng vo n ch c thc hin ti mt pha ca n. Pha nyc gi l nh ca ngn xp.
Trong tin hc, mt ngn xp l l mt danh sch tuyn tnhm cc tc ng vo n ch c thc hin ti mt pha can. Pha ny c gi l nh ca ngn xp.
V d: Ta hnh dung ngn xp nh mt ngn ko ng ti liu (ca
mt bn lm vic) m ta chc th thm vo hoc bt i ccphn t (ti liu) trong t mt trn (nh) ca ngn ko.
on o chiu toa xe la. Hp bng n ca sng AK. Mt chng cc vt cng kiu (sch, bt, o, ng xu, hp
n sng my AK47) V vy m c tn gi Stack (danh sch kiu xp chng)
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
79/122
79
4.6.1. Ngn xp v cc thao tc cbn trn cc ngn xp
Vi kiu ngn xp, ta chc th thc hin cc thao tc sau: Khi to mt ngn xp. y (push) mt phn t mi vo ngn xp nu ngn xp cha y. Phn t
d liu mi lun c thm ti nh. Ly (pop) mt phn t ra khi ngn xp nu ngn xp khc rng. Phn t b
loi l phn t ang nm ti nh. Kim tra xem ngn xp c hay khng c phn t (rng hay khng). Kim tra xem ngn xp y hay cha Mi tc ng khc vo ngn xp u phi thng qua cc thao tc ny.
Nh vy: Cc phn t ca ngn xp c cng mt kiu no Ngn xp l mt trng hp ring ca danh sch, c s dng trong cc
ng dng c lin quan n s o ngc. Trong CTDL ngn xp, vic thmhay ly d liu ch c thc hin ti mt u. D liu thm vo sau s lyra tr c, tnh cht ny cn c gi l vo sau ra tr c (Last In First Out -LIFO).
V vy, t nay v sau khi ni n ngn xp ta hiu l danh sch kiuLIFO
4.6.1. Ngn xp v cc thao tc cbn trn cc ngn xp
Push Q vo stack
Push A vo stack
Pop mt phn t (A) khi stack
Stack rngPush R vo stack
Push D vo stack
Push M vo stack
Push Q vo stack
Push G vo stack
Pop mt phn t (M) khi stack
Q
QA
QA
Q
Pop mt phn t (Q) khi stack
RD
RDM
RDM
RDQ
RDQG
Stack rngR
QARDMQG
Stack
Ta s thy trong v d sau, cc thao tc push v pop l cc thao tc quantrng, c s dng thng xuyn khi lm vic vi ngn xp.
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
80/122
80
4.6.1. Ngn xp v cc thao tc cbn trn cc ngn xp
V d: IT-IS-A-STACKPush I vo stack
ITIS
Push T vo stack
Pop mt phn t (T) khi stack
Push I vo stack
Push S vo stack
Pop mt phn t (S) khi stack A
Push A vo stack
Pop mt phn t (A) khi stack
S
Push S vo stack
T
Push T vo stack
Push A vo stack
AC
Push C vo stack
K
Push K vo stack
4.6.1. Ngn xp v cc thao tc cbn trn cc ngn xp
V d i mt s nguyn dng, chng hn 23, sang c s 2,ta thc hin nh sau:
Nh vy ta phi nhiu ln thc hin thao tc push(s, sodu) trongqu trnh thc hin chia lin tip cho 2 v sau khi thc hinxong dy cc php chia li phi lin tip vit ra pop(s) cho nkhi ngn xp s rng
23 2
111 2
51 221 2
10 2
01 1
1
10
1
t s d vo Ngn xp Vit r a kt quQu trnh chia lin tip
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
81/122
81
4.6.1. Ngn xp v cc thao tc cbn trn cc ngn xp
Beginrepeatwrite('Cho so tu nhien n: '); readln(n);ktaonx(tronx);while n>0 dobeginr:=n mod 2;push(r,tronx);n:=n div 2;
end;
while not la_rong(tronx) do write(pop(tronx));writeln;write('Co doi nua khong? (C/K)'); readln(ch);until upcase(ch)='K';
End.
4.6.2. M hnh thit k ngn xp
Thc hin m hnh ha ngn xp Ta cn to mt cu trc danh sch tuyn tnh v chun
b cc thao tc c th lm vic vi danh sch ny vit cch l mt ngn xp
Cn nh ngha mt kiu danh sch coi n nh ngnxp, bao gm cu trc d liu c s dng v itng lm nh ca ngn xp. Do c th chn danhsch lin kt n vi mt con tr n u (nh) danhsch hoc mng mt chiu vi mt tham s nguyn chv tr nh ca ngn xp
Cn to cc th tc/hm thao tc trn danh sch nyvi t cch l thao tc ngn xp bao gm 5 thao tc ni trn.
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
82/122
82
4.6.2. M hnh thit k ngn xp(M hnh danh sch lin kt ca ngn xp)
M hnh danh sch lin kt ca ngn xp Cu trc d liu ca mi phn t thuc ngn xp s chnh
l mt bn ghi gm cc tr ng ni dung v mt trngkiu con tr lm nhim v lin kt.
Ngn xp S l mt danh sch c qun l bi con trdanh sch S v cc thao tc khi to, push, pop, kim trarng, kim tra y s c tham s ha bi cc hm/thtc: khoitao(s), push(s,pt), pop(s), la_rong(s), la_day(s)
Vic lu tr d liu vo ngn xp s thc cht l vic thc
hin mt hay nhiu ln thao tc push(s,pt) vi s l con trdng qun l ngn xp (tr n nh ca n) v pt lmt phn t d liu cn lu tr.
Vic ly d liu ra khi ngn xp c lm tun t bngcc thao tc pop(s)
4.6.2. M hnh thit k ngn xp(M hnh danh sch lin kt ca ngn xp)
Khai bo v th tc trong PascalTypekieudl=;tropt=^kieupt;
kieupt=recordnd:kieudl;ke:tropt;
end;Varr:kieudl;tronx:pointer;n:longint;
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
83/122
83
4.6.2. M hnh thit k ngn xp(M hnh danh sch lin kt ca ngn xp)
Procedure ktaonx(var tronx:pointer);Begintronx:=nil;
End;Procedure push(pt:kieudl; var tronx: pointer);
Varthem:tropt;
Beginnew(them);
them^.nd:=pt;them^.ke:=tronx;tronx:=them;
End;
4.6.2. M hnh thit k ngn xp(M hnh danh sch lin kt ca ngn xp)
Function pop(var tronx:pointer):kieudl;var
tam:tropt;Begin
tam:=tronx;
pop:=tam^.nd;tronx:=tam^.ke;dispose(tam);
end;Function la_rong(tronx:pointer):boolean;
beginla_rong:=(tronx=nil);
end; Ni chung khi ci t bi danh sch lin kt t a t p hi quan tm
nhiu n vic ngn xp l y hay cha.
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
84/122
84
4.6.2. M hnh thit k ngn xp(M hnh mng ca ngn xp)
M hnh mng ca ngn xp Cu trc d liu ca mi phn t thuc ngn xp s chnh
l cu trc d liu ca phn t ca mng.
Ngn xp s l mt cu trc/bn ghi gm mng cc phn td liu c qun l km theo mt bin nh (s nguyn) xc nh v tr ca nh ngn xp v cc thao tc khito, push, pop, kim tra r ng, kim tra y s c thams ha bi cc hm/th tc: khoitao(s), push(s,pt), pop(s),la_rong(s), la_day(s).
V mng c kch thc c nh nn hm kim tra y(la_day(s)) l cn thit
4.6.2. M hnh thit k ngn xp(M hnh mng trong C ca ngn xp)
Cu trc ngn xptypedef struct intstack{
int *stackAry; /*mng lu tr cc phn t.*/int count; /*s phn t hin c ca stack */int stackMax; /*gii hn ti a cc phn t c
lu tr*/ int top; /*chs ca phn t nh*/} IntStack;
int PushStack(IntStack *stack, int dataIn) {if(stack->count == stack->stackMax) return 0; /*kim tratrn*/else{ /* Thm phn t vo stack */
(stack->count)++;(stack->top)++; /* Tng nh */stack->stackAry[stack->top] =dataIn;return 1;}
} /* PushStack*/
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
85/122
85
4.6.2. M hnh thit k ngn xp(M hnh mng trong C ca ngn xp)
int PopStack(Int Stack *stack,int *dataOut){if(stack->count == 0)return 0; /* Kim tra stack rng */*dataOut=stack->stackAry[stack->top];
/* ly gi tr phn t b loi*/(stack->count)--;(stack->top)--; /* gim nh */return 1;
}/* PopStack*//* Xem phn t nh ca stack, tr li 1 nu thnh cng v tr
li 0 nu stack rng, dataOut cha kt qu */
int TopStack(IntStack *stack, int* dataOut){if(stack->count ==0) return 0; /* Stack rng */*dataOut = stack->stackAry[stack->top];return 1;
}/* Topstack*/
4.6.2. M hnh thit k ngn xp(M hnh mng trong C ca ngn xp)
/* Kim tra stack rng, tr li 1 nu l r ng,Tr li 0 nu khng rng */int IsEmptyStack(IntStack *stack){
return(stack->count == 0);}/* IsEmptyStack*//* Kim tra stack y. Tr li 1 nu l y, tr li 0
nu khng y*/int IsFullStack(IntStack *stack){
return(stack->count==stack->stackMax);}/* IsfullStack*/
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
86/122
86
4.6.2. M hnh thit k ngn xp(M hnh mng trong C ca ngn xp)
Int Stack *CreateStack(int max){IntStack *stack;stack=(IntStack*)malloc(sizeof(IntStack));if(stack == NULL)return NULL;/*Khi to stack rng*/stack->top = -1;stack->count = 0;stack->stackMax= max;stack->stackAry=malloc(max*sizeof(int));return stack ;
}/* createStack*/
4.6.2. M hnh thit k ngn xp(M hnh mng trong Pascal ca ngn xp)
Cu trc ngn xp Type
Nmax=100; Kieudl=; Kieumang=array[1..100] of kieudl; Kieunx=record dl:kieumang; dinh:integer; end;
Var S: kieunx;
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
87/122
87
4.6.2. M hnh thit k ngn xp(M hnh mng trong Pascal ca ngn xp)
Th tc/hm: khoitao(s),s.dinh:=0;
Th tc/hm: push(s,pt):s.dinh:=s.dinh+1;s.dl[dinh]:=pt;
Hm: pop(s),return(s.dl[dinh]);s.dinh:=s.dinh-1;
Hm la_rong(s)if s.dinh=0 return true
Ham la_day(s)if s.dinh=nmax return true
4.6.3. ng dng ca ngn xp(x l biu thc)
i c s nh gi biu thc hu t
K php trung t v k php hu t ca biu thc K php trung t (cch vit biu thc thng thng)
Vi php ton 2 ngi: Mi ton t c t gia hai ton hnga+b*c c hiu l a+(b*c)
Vi php ton mt ngi: Ton t c t trc ton hng Tuy nhin theo cch vit ny ta cn phi quy c: trong dy cc
php tnh th nhn (chia) thc hin trc, cn cng (tr) thc hinsau (k t tri qua phi), nu mun thay i (quy nh th t khci) th phi s dng n cc du ngoc theo ngha trong ngoc sc thc hin trc.
(a+b)*c Sp xp gim dn ca th t u tin ca ton t:
( ) > ^ > * = % = / > + =
Vic nh gi (tnh gi tr) biu thc trung t kh phctp
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
88/122
88
4.6.3. ng dng ca ngn xp(x l biu thc)
minh ho ta xt biu thctrung t:
5(((9+8) (4+6))+7)5((1710)+7)
5(170+7)5 177
885 K php hu t (PRN)
L k php trnh by mtbiu thc, theo ton hngt trc ton t.
Do nh ton hc BaLan, JanLukasiewicz xut vo unhng nm 50 ca th ktrc nn c tn gi l k phpnghch o BaLan (PolishReverse Notation PRN).
Biu thc (a+b)*c trong kphp trung t c vit li l
a b+ c * Biu thc hnh bn c th
vit li l:5 9 8 + 4 6 + 7+
5 17 10 7 + 5 170 7 +
5 177 885
R rng cch vit ny c uim l khng cn n ccdu ngoc, ng thi qutrnh tnh gi tr ca biu thcny c minh ha bi hnhv sau
4.6.3. ng dng ca ngn xp(x l biu thc)
Ta s lu tr cc ton hng cho n khi mt ton t(php ton) xut hin. Vi php ton ny hai tonhng cui cng (trong danh sch cc ton hng c lu tr) s c ly ra v sau khi thc hin
php ton, kt qu li c a vo lu tr. Do vic s dng mt ngn xp l hp l.
5 9 8 + 4 6 + 7+
5 17 10 7 +
5 170 7 +
5 177
885 59
8
17
4
6
10
170
7
177
885
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
89/122
89
4.6.3. ng dng ca ngn xp(x l biu thc)
Thut ton tnh gi tr mt biu thc dng RPNKhi to mt ngn xp rngLp
c thnh phn (tip theo) trong biu thcNu l mt ton hng th
t n vo ngn xpnu khng (tc l ton t-php ton) th
lpnu ngn xp rng th
biu thc c lithot ra khi thut ton
nu khng th ly ra khi ngn xp mt phn t
cho n khi ly hai phn tThc hin php ton va c vi hai phn t va c ly rat kt qu vo ngn xp
cho n khi c du hiu kt thc biu thc
Bt u
Khi to(s)
c thnh phn (tip theo) ca biu thc
Bo li b thc (Return 0)
Kt thc
L ton hng_
La_Rong(s)_
Push(s,ton hng)
Push(s, op(Tam[1],tam[2]))
+
+
i=i++; tam[i]=pop(s);
i
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
90/122
90
4.6.3. ng dng ca ngn xp(x l biu thc)
Thut ton i mt biu thc dng trung t thnh mt biu thcdng RPN. chuyn mt biu thc dng trung t sang dng RPN (hu
t) ta cn phi thc hin cc thao tc no? xy dng thutton chuyn i ny ta hy xem xt mt v d:
5 ((9+8) (4+6)+7)=5 ((9 8 +) (4 6 +) )7+ 5 9 8 + 4 6 + 7+
v mt v d khc:(7+5)/2-3 2=((7+5)/2)-(3 2)=7 5 + 2 / 3 2 -
N s c thc hin bng cch ln lt c t tri qua phicc thnh phn ca biu thc trung t. Cc k hiu php ton(ton t) v cc du m ngoc s c t vo mt ngn xptm thi trc khi c vit nghp vi cc ton hng, ccton hng s c vit ra ngay trong biu thc RPN khi cthy chng trong biu thc trung t. C th l:
4.6.3. ng dng ca ngn xp(x l biu thc)
Khi to mt ngn xp rngLp
c thnh phn (tip theo) trong biu thcNu thnh phn l ton hng th vit ranu khng th (n l du ngoc quy nh mc u tin
hoc l mt ton t)Nu l du '(' (du ngoc tri) th t n vo ngn xpNu l du ')' (du ngoc phi) th
LpLy ra phn t thuc ngn xpNu phn t ny khng phi l du '(' th vit ra
cho n khi phn t c ly r a l du '(Nu l du ton t th (chc chn phi c t vo ngn
xp)Nu ngn xp khc rng th
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
91/122
91
4.6.3. ng dng ca ngn xp(x l biu thc)
LpLy raphn t nh ca ngn xpNu phn t va ly ra ny c u tin hn ton
t ang xt th vit phn t va ly racho n khi ton t ang xt c u tin hn phn
t va ly ra hoc ngn xp rngNu ton t ang xt c u tin hn phn t va
ly ra th t tr li ngn xp phn t va ly rat ton t ang xt vo ngn xp
nu khng th t ton t ang xt vo ngn xp
cho n khi gp du kt thc biu thcKhi ngn xp ang cn th ly ra v vit cc phn t ca ngnxp.
Bt u
Khi to(s)
c thnh phn-tp (tip theo) ca b thc tt
L ton hng(tp)_ +
Vit tip(bt,tp)La((tp) La)(tp) Latt(tp)
Push(s,tp) Pt=pop(s)
La((pt)
Vit tip(bt,pt)
La_Rong(s)_ +
Push(s,tp)
Pt=pop(s)
Pt >=tp
Vit tip(bt,Pt)
+
_ Push(s,pt)
Ht biu thc+_La_Rong(s)
Kt thc
Vit tip(bt,pop(s)
_ +
+
_
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
92/122
92
4.6.4. Hng i v cc thao tc cbn trn cc hng i
nh ngha: Mt hng i (queue) l mt m hnh (c cu) m tc ng b
sung vo n c thc hin mt pha ca n v tc ngloi b mt phn t c thc hin pha cn li.
Trong tin hc, mt hng i l mt danh sch tuyn tnh mthao tc b sung ch c thc hin mt u v thao tcbt i c thc hin pha cn li ca n.
V d: Ta hnh dung hng i nh mt dy ngi xp hng ti mt
quy hng mua mt mt hng no m ch c th thmvo hng i t cui v bt i phn t u ca hng i.
Mt v i v d khc: Mt dy cc cng vic trong mt h thng my tnh ang ch mt
thit b no (chng hn nh my in). Mt dy my bay ang trong ng dn ra ng bng chun b
ct cnh
4.6.4. Hng i v cc thao tc cbn trn cc hng i
Hng i l mt cu trc d liu tru tng, l mt danh sch tuyntnh. Tuy nhin im khc cn bn, c th xem nh i lp vi ngnxp l trong khi ngn xp hot ng theo nguyn l vo sau - ratrc(LiFo Last in - First out) th hng i hot ng theo nguyn lvo trc - r a t r c (FiFo First in - First out).
Kim tra an ninh ti ga hng khng(security check)
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
93/122
93
4.6.4. Hng i v cc thao tc cbn trn cc hng i
Vi kiu hng i, ta quy c ch c th thc hin cc thao tcsau: Khi to mt hng i. t (put) mt phn t mi vo hng i nu hng i cha y. Phn t d
liu mi lun c thm ti ui. Nhn li (get) mt phn t t hng i nu hng i khc rng. Phn t b
loi l phn t ang nm ti u. Kim tra xem hng i c hay khng c phn t (rng hay khng). Kim tra xem hng i y hay cha Mi tc ng khc vo hng i u phi thng qua cc thao tc ny.
Nh vy: Cc phn t ca hng i c cng mt kiu no
Hng i l mt trng hp ring ca danh sch, c s dng trong ccng dng c lin quan n s bor tn th t. Trong CTDL hng i, dliu thm vo tr c s ly ra tr c, tnh cht ny cn c gi l vo tr cra trc (First In First Out -FIFO).
V vy, t nay v sau khi ni n hng i ta hiu l danh sch kiu FIFO
4.6.5. M hnh thit k hng i
Thc hin m hnh ha hng i Ta cn to mt cu trc danh sch tuyn tnh v chun b cc
thao tc c th lm vic vi danh sch ny vi t cch lmt hng i
Cn nh ngha mt kiu danh sch coi n nh hng i,bao gm cu trc d liu c s dng v cc i tng lmu v ui ca hng i. Do c th chn danh sch linkt n vi mt con tr n u danh sch v mt con tr trn cui (ui) hoc mng mt chiu vi hai tham s nguynchv tr u v ui ca hng i.
i khi cn gn thm mt bin nguyn lu tr thng tin vkch thc thc t ca hng i.
Cn to cc th tc/hm thao tc trn danh sch ny vit cch l thao tc hng i baogm 5 thao tc ni trn.
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
94/122
94
4.6.5. M hnh thit k hng i(M hnh danh sch lin kt ca hng i)
M hnh danh sch lin kt ca hng i Cu trc d liu ca mi phn t thuc hng i s chnh l
mt bn ghi gm cc tr ng ni dung v mt trng kiu contr lm nhim v lin kt.
hng i Q l mt danh sch c qun l bi con tr danhsch H tr ti u v mt con tr ph T tr n ui cng ccthao tc khi to, put, get, kim tra r ng, kim tra y sc tham s ha bi cc hm/th tc: khoitao(H,T),put(H,T,pt), get(H,T), la_rong(H,T), la_day(H,T)
Vic lu tr d liu vo hng i Q thc cht l vic thc
hin mt hay nhiu ln thao tc put(H,T,pt) vi H l con tr dng qun l hng i (tr n nh ca n), T l con tr tin b sung phn t v pt l mt phn t d liu cn lutr.
Vic ly d liu ra khi hng i c lm tun t bng ccthao tc get(H,T).
4.6.5. M hnh thit k hng i(M hnh danh sch lin kt ca hng i)
Khai bo v th tc/hm trong Pascal
Khai bo v hm trong C
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
95/122
95
4.6.5. M hnh thit k hng i(M hnh mng ca hng i)
M hnh mng ca hng i Cu trc d liu ca mi phn t thuc hng i s chnh l
cu trc d liu ca phn t ca mng. Hng i q l mt cu trc/bn ghi gm mt mng cc phn
t d liu c qun l km theo hai bin u, ui (snguyn) xc nh v tr ca u v ui ca hng i, mtbin nguyn ch kch thc hin thi ca n v cc thao tckhi to, put, get, kim tra r ng, kim tra y s c thams ha bi cc hm/th tc: khoitao(q), put(q,pt), get(q),la_rong(q), la_day(q)
V mng c kch thc c nh nn hm kim tra y(la_day(q)) l cn thit. Mt im cn lu khi ci t hng i bi mng
Trong qu trnh x l d liu, nu khng kho th gy lng ph nhtrong khi vn b bo trn (u v ui tng lin tc).
Do cn X l quay vng.
4.6.5. M hnh thit k hng i(M hnh mng ca hng i)
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
96/122
96
4.6.5. M hnh thit k hng i(M hnh mng ca hng i)
1
2
u
ui
1
2
u 1
2
u
3 3
4
2
uui 4
u
ui 5
u
ui
3 3
4
3
4
ui ui
1
2
4.6.5. M hnh thit k hng i(M hnh mng ca hng i)
Cc gii thut Khai bo cu trc v bin hng i (q) gm
Mng (ng) lu tr cc phn t d liu (qarr) vi kchthc ti a l maxsize
Cc bin nguyn (dau, duoi) tr tng minh n uv ui ca hng i
Bin nguyn (kth) xc nh kch thc hin thi cahng i
Khoitao(q) /*to hng i q rng*/Cp mng lu d liu vi kch thc maxsize;Dau=duoi=-1;Kth=0;
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
97/122
97
4.6.5. M hnh thit k hng i(M hnh mng ca hng i)
La_day(q) /* hng i y */return( q->kth == q->maxsize);
Put(q,pt) /*t vo ui hng i q phn t d liupt*/
(q->duoi)++;If (q->duoi == q->maxsize) /* Queue wraps to element 0 */q->duoi = 0;
q->qarr[q->duoi] = pt;(q->kth)++;if(q->kth == 1) /* Inserting into null queue */q->dau = 0;return;
4.6.5. M hnh thit k hng i(M hnh mng ca hng i)
La_rong(q) /* hng i rng*/return(q->kth == 0);
Get (q) /*ly r a t u hng i q phn t d liu */Pt=q->qarr[q->dau]; /* gn gi tr cho bin ra pt*/
(Q->dau)++
if(q->dau == q->maxsize) q->dau = 0;
/* queue front has wrapped to element 0 */
if(q->kth == 1) /* Deleted only item in queue */
q->duoi = q->dau = -1;
(q->kth)--;
Return pt;
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
98/122
98
4.6.5. M hnh thit k hng i(M hnh mng ca hng i)
Khai bo v hm trongCtypedef struct chqueue{
ch *qarr;
int maxsize;
int kth;
int dau;
int duoi;
}IntQueue;
duoidaukthmax
sizeqarr
48710
9876543210
!eueuqsiti
dauduoi
Chng 5. Cy
5.1. Cy v cc khi nim v cy5.2. Cc php ton trn cy
5.3. Ci t cy5.4. Cy nh-phn
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
99/122
99
5.1. Cy v cc khinim v cy
5.1.1.nh ngha cy5.1.2. Cc khi nim lin quan5.1.3. Cy c sp5.1.4. V d
5.1.1. nh ngha cy
S cn thit phi s dng cu trc cy Danh sch tuyn tnh ch th hin c cc mi quan h tuyn
tnh. Thng tin cn c th c quan h dng phi tuyn,
nh ngha cy (c gc) L mt danh sch T khc rng trong
Hoc T ch bao gm mt phn t r. Hoc nu nhiu hn mt phn t r th r gi l gcv c mt
quan h trn n phn cn li (tr gc r) c chiathnh m (m>0) cy vi cc gc r1, r2,,rm sao cho vi mi i(1 i m) u c r ri.. Quan h c gi l quan h cha-con.
Nu x y th ta gi x l cha ca y hoc y l con ca x. Cc cy vi cc gc r1, r2,,rm c gi l cc cy con ca
cy r
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
100/122
100
5.1.1. nh ngha cy
Biu din cy bi th
Mi phn t thuc T t nay c gi l mt nh ca cy
A
IE JD
G
C F
B
H L
K
5.1.2. Cc khi nim lin quan
S cc con ca mt nh gi l bc(cp) ca nh . Cc nhcbc 0 c gi l lca cy. Cc nh c t nht mt con c gi l nh trong. Cc con c cng mt cha c gi l anh em. Mt dy cc nh a1, a2, ... an (n 1), sao cho ai (i = 1, 2, ... , n-1) l
cha ca ai+1 c gi l ngitrong quan h cha-con t a1 nan. di ca ng i ny l n-1.
Nu c mt ng i t nh a n nh b c di k 1, th ta nia l tin thn ca b v b l hu thca a.
di ca ng i di nht t nh a n mt l c gi l cao ca nh a.
cao ca gc c gi l cao ca cy. di ca ng i t gc n a c gi l mc ( su) ca
nh a.
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
101/122
101
5.1.2. Cc khi nim lin quan
Nh vy, t cc nh ngha trn ta suy ra r ng: Mi nh cacy lgc ca cc con ca n.
L l nh khng c con.
Cc nh ca cy hoc l l hoc l nh trong.
Lun lun tn ti mt ng i duy nht trong quanh cha-con F t gc ti mt nh bt k trong cy.
Vi mi x,y (x r y) thuc T u tn ti mt phn
t z thuc T c mt ng i trong quan hF
tz n x v mt ng i trong quan h F t z ny.
Gc ca cy c mc 0.
5.1.2. Cc khi nim lin quan
V d. Trong cy bn:
nh C l cha ca cc nhD,E.
Cc nh D,E,I,J,K, F, L l l,cc nh cn li l nh trong.
A,B,C,E l ng i c di 3 tA n E.
nh B l tin thn ca ccnh C,F,D,E.
nh B c cao l 2, cy c cao l 3. Cc nh B,G cmc 1 ; cc nh C,F,H,L cmc 2, cn mc ca ccnh D,E,I,J,K l 3.
A
IE JD
G
C F
B
H L
K
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
102/122
102
5.1.3. Cyc sp
Trong mt cy, nu cc cy con ca mi nh c sp theo mtth t nht nh, th cy c gi l cy c sp (t tri quaphi).
Sau ny chng ta chquan tm n cc cy c sp. Do khini n cy th cn c hiu l cy c sp.
Gi s trong mt cy c sp T, nh a c cc con c sptheo th t : b1, b2, ..., bk (k 1). Khi ta ni b1 l con trngca a, v bi l anh lin k ca bi+1 (bi+1 l em lin k ca bi), i =1,2, ..., k-1. Ta cn ni, vi i < j th bi bn tri bj (bj bn phibi).
Quan h ny c m rng nh sau: Nu a bn tri b th mihu th ca a bn tri mi hu th ca b. V d.
Trong cy cho I l con tr ng ca H, v l anh lin k canh J. nh K l con t ca H ( tn cng bn bn phi trong scc con ca H.
5.1.4. V d
Cy biu din cc t chc
Cy thmc
Chnh ph
B BBA B Z
Ban sBan r
S X Cc Y V T
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
103/122
103
5.2. Cc php tontrn cy
5.2.1. Cc php ton c bn trn cy
5.2.2.i qua cy (duyt cy)
5.2.1. Cc php ton c bn trn cy
Tm cha ca mi nh tm cha ca mi nh x, cn thit phi xy dng hm
Parent(x) tr v a ch l a ch ca nh cha ca x.Trng hp x l gc hm c th tr v NULL.
Tm con bn tri ngoi cng (con trung) ca minh. Hm EldestChild (x) cho ta con trng ca nh x. Trong
trng hp x l l (x khng c con) th EldestChild (x) =NULL.
Tm em lin k ca mi nh. Hm NextSibling (x) xc nh em lin k ca nh x. Trong
trng hp x khng c em lin k (tc x l con ngoi cngbn phi ca mt nh no ) th NextSibling(x) = NULL.
Smi t h Ngu y en St u d io .
ht t p:/ / gg.gg/ sns
-
7/31/2019 Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio
104/122
104
5.2.1. Cc php ton c bn trn cy
V d. Gi s T l cy cho trong hnh bn.Khi Parent(E) = C, Parent(A)
= NULL,
EldestChild(C) = D,EldestChild(H) = I,EldestChild(K) = NULL,
NextSibling(g) = NULL,NextSibling(H) = L.
A
IE JD
G
C F
B
top related