Slide Cau Truc Du Lieu Va Giai Thuat 2 - Nguyen Trung Hoa - Smith.N Studio

Embed Size (px)

Citation preview

  • 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: [email protected] 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