BaoCao NCKH TreeQueue Ver3

Embed Size (px)

DESCRIPTION

BaoCao NCKH TreeQueue Ver3 PDF

Citation preview

  • Trang 1

    MC LC

    LI CM N ............................................................................................................................................................4

    PHN M U .......................................................................................................................................................5

    1. L do chn ti. ..............................................................................................................................................5

    2. Mc tiu ti. ..................................................................................................................................................5

    3. i tng v phm vi nghin cu. ...................................................................................................................6

    3.1. i tng nghin cu. ......................................................................................................................................6

    3.2. Phm vi nghin cu. .........................................................................................................................................6

    4. Cch tip cn v phng php nghin cu. ....................................................................................................6

    4.1. Cch tip cn. ....................................................................................................................................................6

    4.2. Phng php nghin cu. ................................................................................................................................6

    CHNG 1: HNG I .......................................................................................................................................7

    1. TNG QUAN V CU TRC HNG I ..................................................................................................7

    1.1. nh ngha. ........................................................................................................................................................7

    1.2. Tnh cht. ...........................................................................................................................................................9

    1.3. Tru tng ha cu trc hng i. .................................................................................................................9

    1.4. Cc php ton trn hng i. ...........................................................................................................................9

    2.5. Ci t hng i. ...............................................................................................................................................9

    2.5.1. Ci t hng i bng mng. ..................................................................................................................... 10

    2.2. Ci t hng i bng danh sch lin kt. ................................................................................................... 16

    CHNG 2: CY ................................................................................................................................................ 20

    2.1. Tng quan v cu trc cy. ........................................................................................................................... 20

    2.1.1. nh ngha v cc khi nim. .................................................................................................................... 20

  • Trang 2

    2.2. Cy nh phn. ................................................................................................................................................. 22

    2.2.1. nh ngha. .................................................................................................................................................. 22

    2.2.2. Tnh cht. ..................................................................................................................................................... 23

    2.2.3. Cc thao tc trn cy nh phn. ................................................................................................................. 25

    2.2.4. Ci t cy nh phn. .................................................................................................................................. 25

    2.3. Cy nh phn tm kim. ................................................................................................................................. 28

    2.3.1. nh ngha. .................................................................................................................................................. 28

    2.3.2. Cc thao tc trn CNPTK. ......................................................................................................................... 29

    2.3.3. Ci t cy nh phn tm kim. .................................................................................................................. 29

    2.3.4. Phn tch nh gi. ..................................................................................................................................... 32

    2.4. Cy nh phn cn bng tm kim. ................................................................................................................. 32

    2.4.1. Cy nh phn cn bng hon ton. ............................................................................................................ 32

    2.4.1.1. nh ngha: ............................................................................................................................................... 32

    2.4.1.2. nh gi: ................................................................................................................................................... 32

    2.4.2.Cy nh phn t cn bng (cy AVL). ....................................................................................................... 32

    2.4.2.1. nh ngha: ............................................................................................................................................... 32

    2.4.2.3. Cc thao tc trn cy AVL. ..................................................................................................................... 33

    2.4.2.4. Ci t cy AVL. ...................................................................................................................................... 33

    2.4.2.5. nh gi. ................................................................................................................................................... 37

    CHNG 3. M PHNG TRC QUAN CC PHP TON TRN HNG I V CY. ..................... 39

    3.1. Phn tch v tng. ..................................................................................................................................... 39

    3.1.1. Phn tch. ..................................................................................................................................................... 39

    3.1.2. tng. ........................................................................................................................................................ 40

    3.2. Giao din chnh. ............................................................................................................................................. 40

  • Trang 3

    KT LUN ............................................................................................................................................................ 45

    1. u im. .......................................................................................................................................................... 45

    2. Nhc im. .................................................................................................................................................... 45

    3. Hng pht trin. ........................................................................................................................................... 45

    NHN XT CA GIO VIN HNG DN .................................................................................................... 46

    NHN XT CA GIO VIN PHN BIN .................................................................................................... 47

  • Trang 4

    LI CM N

    Sau thi gian hc tp, tm hiu v nghin cu ti khoa o To quc t - trng ai

    hc Duy Tn, c s gip qu bu ca cc thy gio, c gio nhm chng em hon

    thnh bi nghin cu khoa hc ca mnh.

    hon thnh bi nghin cu mt cch hon thin nht c th, trc ht cho php

    chng em c by t li cm n chn thnh ti c Nguyn Th Bo Trang hng dn

    tn tnh, gip chng em trong sut qu trnh hon thnh bi nghin cu.

    Ngoi ra em xin cm n cc thy, cc c vi s gip nhit tnh trong qu trnh

    ging dy trang b cho chng em mt nn tng kin thc vng chc cng nh cc ti liu

    thao kho v lp trnh.

    y l ln u tin chng em lm mt bi nghin cu cng nh kinh nghim bn thn

    cn hn ch nn bi nghin cu ca chng em khng th trnh khi nhng sai st. V vy,

    chng em rt mong nhn c s ch bo, ng gp kin ca cc thy c chng em c

    iu kin b sung, nng cao kin thc ca mnh, phc v tt hn cc cng tc thc t sau

    ny.

    Em xin chn thnh cm n!

    Nng ngy ...., thng ....., nm .....

  • Trang 5

    PHN M U

    1. L do chn ti.

    Trong khoa hc my tnh, cu trc d liu l mt cch lu d liu trong my tnh sao

    cho n c th c s dng mt cch hiu qu. Mt cu trc d liu c la chn cn thn

    s cho php thc hin thut ton hiu qu hn.

    Vic xy dng chng trnh ny nhm h tr tt nht v cu trc d liu Hng i

    ueue v Cy Tree gp phn gip cho qu trnh ging dy ca Ging vin v mn cu

    trc d liu & gii thut c tt. Nhm tm hiu nhng thut ton c bn ca cu trc d

    liu v gii thut, to iu kin cho sinh vin c kh nng tm ti, t hc v lm vic c

    lp.

    Nhng hnh nh c th lun to cho sinh vin c mt ci nhn trc quan hn v vic

    hc, vi nhng qu trnh m phng bng hnh nh ca ti s h tr cho ngi hc c th

    tip thu kin thc mt cch nhanh nht v nm c vn ngay ti lp c th hiu r v

    cu trc d liu ca Hng i v Cy c lu tr trong my tnh nh th no v nm c

    t ng bc thc hin ca cc gii thut trn hai cu trc d liu ny . ti s thc y cht

    lng ca vic hc cao hn, to mt nn tng lp trnh vng chc cho sinh vin sau ny.

    u trnh ging dy ca ging vin lun l vn quan trng, n lun nh hng ti

    vic hc v tip thu ca sinh vin. Vy nn chng trnh nhm nng cao cht lng ging

    dy v o to ca ging vin dnh cho sinh vin cng ngh thng tin ti trng H Duy

    Tn ni ring v cc trng cao ng, i hc trn ton quc ni chung.

    To ra mt sn phm tr tu nh hng ti vic hc cng nh vic ging dy nhm

    qung b uy tn v thng hiu ca trng i hc Duy Tn, to nim tin cho nhng hc

    sinh v sinh vin am m lp trnh mun theo con ng cng ngh, nhm hng n mt

    trng i hc c cht lng ging dy cao v nhm p ng nhu cu tuyn dng Cng

    ngh thng tin ngy mt tng ca cc doanh nghip.

    2. Mc tiu ti.

    ti nghin cu nhng khi nim, tnh cht, cc php ton chn, xa, tm kim v

    cu trc d liu Hng i, Cy, Cy nh phn , Cy nh phn cn bng, Cy nh phn tm

  • Trang 6

    kim, Cy en ri t m phng cc php ton trn Hng i, Cy, Cy nh phn, Cy

    nh phn cn bng, Cy nh phn tm kim, Cy en mt cch trc quan nht.

    3. i tng v phm vi nghin cu.

    3.1. i tng nghin cu.

    - L thuyt v cu trc d liu Hng i v Cy.

    - Hot ng ca Hng i, Cy v vic p dng cc gii thut ca Hng i, Cy

    trong mt s bi ton c bn.

    - Ngn ng lp trnh Java dng phc v cho hng pht trin l m phng trc

    quan cu trc d liu v cc gii thut trn Hng i v Cy.

    3.2. Phm vi nghin cu.

    - Nghin cu v lm r nhng khi nim, tnh cht v cu trc d liu Hng i,

    Cy, Cy nh phn, Cy nh phn cn bng, Cy nh phn tm kim, Cy en.

    - Nghin cu cc php ton chn, xa, tm kim trn Hng i, Cy, Cy nh phn,

    Cy nh phn cn bng, Cy nh phn tm kim, Cy en.

    - Thc hin m phng cc php ton trn Hng i, Cy, Cy nh phn, Cy nh

    phn cn bng, Cy nh phn tm kim, Cy en.

    4. Cch tip cn v phng php nghin cu.

    4.1. Cch tip cn.

    Tip cn t l thuyt thc tin gii php.

    4.2. Phng php nghin cu.

    - Tm hiu l thuyt v cy, hng i v ha qua cc ti liu.

    - Trong qu trnh tm hiu th hc hi bn b, gio vin v mt l thuyt cng nh

    cc thao tc khi xy dng n.

    - Thc hnh v xy dng t ng bc n khi hon chnh.

  • Trang 7

    CHNG 1: HNG I

    1. TNG QUAN V CU TRC HNG I

    1.1. nh ngha.

    L mt danh sch nhng cc php ton ch c thc hin hai nh ca danh sch.

    Mt nh gi l u hng, nh cn li gi l cui hng. Thm cui danh sch tail , cn

    bt th pha u ca danh sch head .

    Xp hng mua v xe la l hnh nh ca hng i, ngi n trc mua v trc,

    ngi n sau mua v sau.

    V d:

    words

    store

    in

    a

    queue

    head ca hng i

    tail ca hng i

    T cn chn vo

    more

    Hnh 1.1: Hng i trc khi khng thm g.

  • Trang 8

    store

    in

    a

    queue

    more

    head ca hng i

    tail ca hng i

    Hnh 1.3: Hng i sau khi xa t words.

    wods

    store

    in

    a

    queue

    more

    head ca hng i

    tail ca hng i

    Hnh 1.2: Hng i sau khi thm t more.

  • Trang 9

    1.2. Tnh cht.

    Vo trc ra trc (First in First out: FIFO).

    1.3. Tru tng ha cu trc hng i.

    M t d liu.

    A = (a0, a1, ... ,an)

    Trong :

    a0: Phn t u ca hng i A.

    an: Phn t cui hng i ca A.

    V d: A = (1, 3, 5, 7, 9)

    khi :

    1: phn t u hng i.

    9: phn t cui hng i.

    1.4. Cc php ton trn hng i.

    Peek: Tr v phn t u hng i nhng khng xa n.

    A = (a0, a1, ..., an-1, an) peek() a0.

    V d: A(1,3,5)

    peek() 1.

    Pop: Tr v phn t u hng i v xa n.

    A = (a0, a1, ..., an-1, an) A = (a0, a1, ..., an)

    V d: A = (14, 6, 8)

    pop() A= (6, 8)

    Push x : a mt gi tr vo cui hng i

    A = (a0, a1, ..., an) A = (a0, a1, ..., an, x)

    V d: A = (2, 6, 7)

    push(25) A = (2,6,7,25).

    2.5. Ci t hng i.

    C nhiu cch ci t hng i:

  • Trang 10

    Ci t hng i bng mng bng cch s dng mt cp ch s theo d i cc trng

    hp u v ui ca hng i. Vic ci t hng i bng mng xoay trn khi s dng

    cc ch s u v ui c th rt hiu qu khi kch thc hng i l c nh.

    Ci t hng i bng danh sch lin kt th rt tt khi kch thc hng i khng c

    nh.

    2.5.1. Ci t hng i bng mng.

    Ci t hng i bng cch s dng mng th rt hiu qu khi bit trc s phn t ti

    a ca hng i

    Vic loi b mt phn t trong hng i c thc hin u mng v vic thm

    phn t mi vo hng i c thc hin cui mng, s dng cp ch s u v ui v

    khi to mt mng vng.

    V d:

    Hnh 2.5.1: Hng i mng vng trc khi chn t First

    Hng i T cn chn vo Head ca hng i

    First

    0

    0

    0

    Tail ca hng i

    Size

    1

    2

    3

    0

    4

    5

    6

  • Trang 11

    Hnh 2.5.3: Hng i mng vng sau khi chn t Second

    First

    Head ca hng i

    0

    1

    Tail ca hng i

    Second 1

    2

    3

    0

    4

    5

    6

    2

    Size

    Hnh 2.5.2: Hng i mng vng sau khi chn t First

    First

    Hng i T cn chn vo Head ca hng i

    First

    1

    0

    1

    Tail ca hng i

    Size

    1

    2

    3

    0

    4

    5

    6

    Hng i

  • Trang 12

    V d: Mt trng hp khc ca mng vng.

    Hnh 2.5.5: Hng i mng vng trc khi chn t Second.

    Second

    T cn chn vo Hng i

    6

    Head ca hng i

    5

    Tail ca hng i First

    1

    3

    2

    0

    6

    5

    1

    Size

    Head ca hng i Tr v t First

    First

    1

    Size

    1

    2

    3

    0

    4

    5

    6

    Second

    1

    Tail ca hng i

    0

    Hnh 2.5.4: Hng i mng vng sau khi xa t First

    4

  • Trang 13

    Hnh 2.5.7: Hng i mng vng sau khi chn t Third

    Third

    Size

    T cn chn vo

    3

    Head ca hng i

    5

    1

    Tail ca hng i

    First

    4

    3

    2

    1

    0

    6

    5

    Second

    Third

    T cn chn vo

    Second

    2

    Head ca hng

    i

    5

    0

    Tail ca hng i

    First

    4

    3

    2

    1

    0

    6

    5

    Second

    Size

    Hnh 2.5.6: Hng i mng vng sau khi chn t

    Second.

    Hng i

    Hng i

  • Trang 14

    Second

    Tr v t Second sau khi xa

    Third

    4

    3

    2

    1

    0

    6

    5

    Hng i Head ca hng

    i 0

    Tail ca hng i

    1 Size

    1

    Hnh 2.5.9: Hng i mng vng sau khi xa t

    Second

    Size

    2

    Head ca hng

    i

    6

    1

    Tail ca hng i

    Hnh 2.5.8: Hng i mng vng sau khi xa t First

    4

    3

    2

    1

    0

    6

    5

    Second

    Third

    First

    Tr v t First sau khi xa Hng i

  • Trang 15

    hai v d trn, ta thy rng khi head = tail c ngha l hng i rng. Nhng khi

    hng i y th ch s head cng bng ch s tail. V vy ta cn x l 2 ch s ny trnh

    s m h gia hng i rng v y. loi b s m h chng ta cn kim tra s phn t

    (size) ca hng i, khi s phn t bng kch thc ti a ca hng i th khi hng i

    y, cn khi s phn t hng i bng 0 th lc hng i rng.

    Vic xc nh kch thc ca hng i l rt quan trng, v vic thay i li kch

    thc ca hng i th c th thc thi c, nhng i hi rt tn chi ph. Chng ta phi

    chc rng hng i c kch thc qu nh th mi yu cu thay i li kch thc. Nhng

    nu kch thc hng i qu ln th s dn n lng ph b nh.

    Nh vy, to ra hng i, ta cn dng mt mng gm cc phn t c kiu E no

    .

    Thm phn t vo cui hng i (Push).

    Nu hng i y th pht sinh thm mt ngoi l. Nu hng i cha y th thm

    phn t mi vo cui hng i ti v tr tail, cp nht li v tr tail v nu v tr tail quay vng

    li u mng th quay v li v tr 0, tng s phn t hng i ln 1 v phng thc ny nhn

    gi tr true.

    Size

    0

    Third

    Tr v t Third sau khi xa

    4

    3

    2

    1

    0

    6

    5

    Hng i Head ca hng i

    1

    Tail ca hng i

    1

    Hnh 2.5.10: Hng i mng vng sau khi xa t Third

  • Trang 16

    public boolean push(E e){

    if(size >= a.length){

    System.out.println("Queue if full");

    System.exit(0);

    }

    a[tail++] = e;

    tail = tail % a.length;

    size++;

    return true;

    }

    Xa phn t u hng i (Pop).

    Nu hng i rng th pht sinh thm mt ngoi l. Ngc li th xa phn t u

    hng i ti v tr head, cp nht li v tr head v nu v tr head quay vng li u mng th

    quay v li v tr 0, gim phn t hng i xung 1 v phng thc ny tr v phn t b

    xa.

    public E pop(){

    if(size < 0){

    System.out.println("Queue is empty");

    System.exit(0);

    }

    E temp = a[head++];

    head = head % a.length;

    size--;

    return temp;

    }

    Tr v phn t u hng i (Peek)

    Nu kch thc mng < 0 th tr v gi tr null, ngc li th tr v phn t u hng

    i.

    public E peek(){

    if(size < 0)

    return null;

    return a[head];

    }

    2.2. Ci t hng i bng danh sch lin kt.

    Ci t hng i bng danh sch lin kt l mt phng php tt khi ta khng cn c

    nh kch thc ca hng i.

    V d:

  • Trang 17

    Hnh 2.2.3: Hng i sau khi xa t words.

    words

    Head ca hng i

    Tr v t words sau khi xa

    a

    in

    queue

    Tail ca hng i

    store

    more

    Hnh 2.2.1: Hng i trc khi chn t more

    a

    more

    words

    in

    queue

    Head ca hng i

    Tail ca hng i

    T cn chn vo

    store

  • Trang 18

    Nh vy, to ra hng i cha mt vi tham s kiu E, ta cn mt Node gm 2

    thuc tnh, mt thuc tnh tham chiu n gi tr kiu E, thuc tnh cn li tham chiu n

    mt Node khc.

    V lp Node ny ch c bit bi lp hng i, nn lp Node s c ci t nh l

    lp lng trong lp hng i.

    V kch thc ca hng i khng cn c nh, nn ta ch cn dng mt hm khi to.

    Thm phn t vo cui hng i.

    Cp pht b nh cho node p, nu hng i rng th p v a l head v a l tail, ngc li

    th tr link lin kt tail ti node p.

    public boolean push(E e){

    Node temp = new Node (e,null);

    if(tail==null)

    head = temp;

    else tail.next=temp;

    tail=temp;

    size++;

    return true;

    }

    more

    words

    store

    a

    in

    queue

    Hnh 2.2.2: Hng i sau khi thm t more.

    more

    Head ca hng i

    Tail ca hng i

    Tr v t words sau khi xa

  • Trang 19

    Ly phn t ra khi hng i.

    public E remove(){

    if(size

  • Trang 20

    CHNG 2: CY

    2.1. Tng quan v cu trc cy.

    2.1.1. nh ngha v cc khi nim.

    Cy l mt cu trc phi tuyn tnh. Mt cy tree l mt tp hu hn cc nt trong

    c mt nt c bit gi l nt gc (root), gia cc nt c mi quan h phn cp gi l quan

    h "cha-con".

    C th nh ngha cy mt cch quy nh sau:

    Mt nt l mt cy. Nt cng l gc ca cy y.

    Nu T1, T2, ..., Tn l cc cy, vi n1, n2, ... nk ln lt l cc gc, n l mt nt

    v n c quan h cha - con vi n1, n2, ... nk th lc mt cy mi T s c to

    lp, vi n l gc ca n. n c gi l cha ca n1, n2, ... nk, ngc li n1, n2, ... nk

    c gi l con ca n. Cc cy T1, T2, ..., Tn c gi l cc cy con substrees

    ca n.

    Ta quy c: Mt cy khng c nt no c gi l cy rng (null tree).

    C nhiu i tng c cu trc cy.

    V d:

    Mc lc ca mt quyn sch, hoc mt chng trong sch c cu trc cy.

    Cu trc th mc trn a cng c cu trc cy, th mc gc c th coi l gc

    ca cy vi cc cy con l cc th mc con v tp nm trn th mc gc.

    Gia ph ca mt h tc cng c cu trc cy.

    Mt biu thc s hc gm cc php ton cng, tr , nhn, chia cng c th lu

    tr trong mt cy m cc ton hng c lu tr nt l, cc ton t c lu tr

    cc nt nhnh, mi nhnh l mt biu thc con.

    Ta c mt cy tng qut nh sau:

  • Trang 21

    Hnh CTQ

    i vi cy, chng hn xt cy Hnh CTQ:

    Nt A c gi l gc ca cy.

    B, C, D l gc ca cc cy con gc ca A.

    A l cha ca B, C, D cn B, C, D l con ca A.

    S cc con ca mt nt gi l cp (degree) ca nt . V d nt A c 3 con l B, C,

    D nn cp ca A l 3, cp ca C l mt, D l 2, B l 3.

    Nt c cp bng 0 gi l l leaf hay nt tn cng terminal node . V d cc

    nt E, F, G, H, I, J. Nt khng l l c gi l nt nhnh branch node .

    Cp cao nht ca nt trn cy gi l cp ca cy . Nh hnh trn l cy cp 3.

    Gc ca cy c s mc level l 1. Nu nt cha c s mc l i th nt con c s mc

    l i+1.

    V d nt A c s mc l 1.

    Cc nt B, C, D cng c mc l 2.

    Cc nt E, F, G, H, I, J c mc l 3.

    Chiu cao (height) hay chiu xu depth ca mt cy l s mc ln nht ca nt c

    trn cy .

    Hnh CTQcy c chiu cao l 3.

    Nu n1, n2, ... nk l dy cc nt m ni l cha ca ni+1 vi 1 i k, th dy l ng

    i path t n1 nk. di ca ng i path length t nt nk n nq l s nt phi i qua

    i t nk n nq ( bng chiu cao ca nq - chiu cao ca nk).

    V d nhHnh CTQ di ng i t A n G l 2.

  • Trang 22

    Nu th t cc cy con ca mt nt c coi trng th cy ang xt l cy th t

    ordered tree , ngc li l cy khng c th t unordered tree . Thng th t cc cy con

    ca mt nt c t t tri sang phi.

    2.2. Cy nh phn.

    2.2.1. nh ngha.

    Cy nh phn l cy m mi nt c ti a 2 cy con.

    i vi cy con ca mt nt ngi ta phn bit cy con tri v cy con phi. Nh vy

    cy nh phn l cy c th t.

    Cy nh phn suy bin c mt danh sch tuyn tnh.

    a b c d

    Cc cy nh phn a, b, c, d l cc cy nh phn suy bin

    Cy a lch tri, cy b lch phi, cy c v d l cy zc zc.

    Cy nh phn hon chnh: l cy nh phn m cc nt cc mc tr mc cui u t

    ti a.

    V d: cy sau y l cy nh phn hon chnh.

  • Trang 23

    Cy nh phn y : L cy nh phn c cc nt ti a mi mc.

    V d: Cy sau y l cy nh phn y .

    2.2.2. Tnh cht.

    Trong cc cy nh phn cng c s lng nt nh nhau th cy nh phn suy

    bin c chiu cao ln nht, cy nh phn hon chnh hoc cy nh phn gn y c

    chiu cao nh nht, loi cy ny cng l cy c dng "cn i" nht.

    S lng ti a cc nt mc i trn 1 cy nh phn l 2i-1 i1 .

    S lng ti a cc nt trn 1 cy nh phn c chiu cao h l

    2h - 1, ti thiu l h h 1 .

    Cy nh phn hon chnh, khng y , c n nt th chiu cao ca n l:

    h = [log2(n+1)] + 1

    Cy nh phn y , c n nt, th chiu cao ca n l: h = log2(n+1).

    Chng minh:

    1) Lng ti a cc nt mc i trn 1 cy nh phn l 2i-1 (i1).

    Chng minh bng quy np: ta bit:

    mc 1: i=1, cy nh phn c ti a 1=20 nt.

    mc 2: i=2, cy nh phn c ti a 2 =21 nt.

  • Trang 24

    Gi s kt qu ng vi mc i - 1, ngha l mc ny cy nh phn c ti a l 2i-2

    nt. Mi nt mc i-1 s c ti a hai con, do 2i-2 nt mc i-1 s cho:

    2i-2

    x 2 = 2i-1

    nt ti a mc i.

    Tnh cht trn c chng minh (1).

    2) S lng ti a cc nt trn 1 cy nh phn c chiu cao h l 2h - 1, ti thiu l h

    (h 1).

    Ta bit rng chiu cao ca cy l s mc ln nht c trn cy. Theo chng minh (1) ta

    suy ra s nt ti a c trn cy nh phn vi chiu cao h l:

    20

    +21

    +22 + ... + 2

    h-1 = 2

    h - 1.

    Lu tr cy nh phn:

    Lu tr k tip: Vi cy nh phn y , ta nh s cc nt t 1 tr i, ht mc ny

    n mc khc, t tri qua phi.

    V d vi cy y trn c lu tr nh sau:

    Lu tr bng danh sch lin kt.

    Trong cch lu tr ny , mi nt ng vi mt phn t nh c quy cch nh sau:

    LPTR : Con tr tr ti cy con tri ca nt

    RPTR : Con tr tr ti cy con phi ca nt

    INFO : Trng thng tin.

    V d cy nh phn sau y:

  • Trang 25

    2.2.3. Cc thao tc trn cy nh phn.

    Cc thao tc trn cy nh phn bao gm:

    Khi to cy nh phn.

    To mi 1 nt .

    Thm 1 nt vo cy nh phn.

    Duyt qua cc nt trn cy nh phn.

    Tnh chiu cao ca cy.

    Tnh s nt ca cy.

    Hy 1 nt trn cy nh phn.

    2.2.4. Ci t cy nh phn.

    nh ngha cy nh phn.

    class TNode{

    int data;

    TNode left,right;

    }

    Khi to cy nh phn.

    Cho con tr qun l a ch nt gc v con tr NULL.

    void btree(Node root)

    {

    root = null;

    }

    To mi mt nt.

    Cp pht b nh cho mt nt, ct d liu vo nt, gn left, right == null, tr v a

    ch nt.

  • Trang 26

    Node make_Node(int x)

    {

    Node p = new Node();

    p.data = x;

    p.left = p.right = null;

    return p;

    }

    Thm mt nt vo cy nh phn.

    Nu kha ca gc khc kha cn chn ta tm n trong cy con tri hoc phi. Nu

    cy con tri hoc phi tng ng l rng khng tm thy th thm mt nt v gn

    cho nt y kha cn chn.

    Gii thut thm tri nht.

    void set_right(int x)

    {

    Node p = new Node();

    if(p == null)

    System.out.println "Nt khng tn ti"); else

    if(p.right!=null)

    System.out.println "Nt c bn phi"); else

    p.right = make_Node(x);

    }

    Gii thut thm phi nht.

    void set_left (int x)

    {

    Node p = new Node();

    if(p == null)

    System.out.println "Nt khng tn ti"); else

    if(p.left!=null)

    System.out.println "Nt c bn tri" ; else

    p.left = make_Node(x);

    }

    Duyt cc nt trn cy nh phn.

    Duyt theo th t nt gc trc (Preoder).

    Duyt nt gc, duyt cy con bn tri, duyt cy con bn phi (Node - Left -

    Right).

  • Trang 27

    void preOrder(Node r)

    {

    if(r!=null)

    {

    System.out.println(r.info+" ");

    preOrder(r.left);

    preOrder(r.right);

    }

    }

    Duyt theo th t nt gc gia (InOder)

    Duyt cy con bn tri, duyt nt gc, duyt cy con bn phi (Left - Node -

    Right).

    void inOrder(Node r)

    {

    if(r!=null)

    {

    inOrder(r.left);

    System.out.println(r.info+" ");

    inOrder(r.right);

    }

    }

    Duyt theo th t nt gc sau (PostOder)

    Duyt cy con bn tri, duyt cy con bn phi, duyt nt gc(Left Right -

    Node).

    void postOrder(Node r){

    if(r!=null)

    {

    postOrder(r.left);

    postOrder(r.right);

    System.out.println(r.info+" ");

    }

    }

    Gii thut tnh chiu cao ca cy.

    tnh chiu cao ca cy TH chng ta phi tnh chiu cao ca cc cy con, khi

    chiu cao ca cy chnh l chiu cao ln nht ca cc cy con cng thm 1 chiu

    cao nt gc . Nh vy thao tc tnh chiu cao ca cy l thao tc tnh quy chiu

    cao ca cc cy con chiu cao ca cy con c gc l nt l bng 1).

    int Height(Node r)

    {

  • Trang 28

    if(r==null) return 0;

    int HL = Height(r.left);

    int HR = Height (r.right);

    if(HL>HR)

    return HL+1;

    return HR+1;

    }

    Gii thut m s nt ca cy.

    Tnh s nt ca cy tng t tnh chiu cao ca cy, s nt ca cy con + 1.

    int count(Node r)

    {

    if(r==null) return 0;

    if(r.left==null&&r.right==null)

    return 1+count(r.left)+count(r.right);

    return count(r.left)+count(r.right);

    }

    2.3. Cy nh phn tm kim.

    2.3.1. nh ngha.

    Cy nh phn tm kim CNPTK l cy nh phn trong ti mi nt, kha ca nt

    ang xt ln hn kha ca tt c cc nt thuc cy con tri v nh hn kha ca tt c ca

    cc nt thuc cy con phi.

    Cy nh phn tm kim l mt cu trc d liu c bn c s dng xy dng cc

    cu trc d liu tr u tng hn nh cc tp hp, a tp hp, cc dy kt hp.

    Nu mt CNPTK c cha cc gi tr ging nhau th n biu din mt a tp hp.

    Nu mt CNPTK khng cha cc gi tr ging nhau th n biu din mt tp hp n

    tr.

  • Trang 29

    Hnh CNPTK

    2.3.2. Cc thao tc trn CNPTK.

    Cc thao tc trn CNPTK bao gm:

    Gii thut tm kim.

    Gii thut chn.

    Gii thut xa

    Gii thut sp xp.

    2.3.3. Ci t cy nh phn tm kim.

    nh ngha cy nh phn tm kim.

    private class Node{

    private E info;

    private Node left, right;

    }

    private Node root;

    Khi to CNPTK.

    public Node(E data, Node left, Node right){

    this.info=data;

    this.left=left;

    this.right=right;

    }

    public Node(E data){

    this.info=data;

    left=right=null;

    }

    public BST(){

    root=null;

    }

    Gii thut chn.

    Da vo gi tr kha ca nt cn chn xc nh v tr chnh xc ca nt . Gi s

    nt cn chn c gi tr kha l V, nt gc ca cy c gi tr kha l N. Nu V>N th ta i

    theo nhnh phi v tip tc qu trnh so snh. Nu V

  • Trang 30

    public Node add(Comparable x, Node r)

    {

    if(r==null){

    r=new Node(x);

    return r;

    }

    else if(x.compareTo((E) r.info)0)

    {

    r.right=add(x,r.right);

    return r;

    }else return r;

    }

    Gii thut tm kim.

    i vi mt cy nh phn tm kim tm xem mt kha X no c trn cy

    khng ta c th thc hin nh sau:

    So snh X vi kha gc v 1 trong 4 tnh hung sau y s xut hin:

    1) Khng c gc cy rng : X khng c trn cy, php tm kim khng tha.

    2) X trng vi kha gc: php tm kim khng tha.

    3) X nh hn kha gc: tm kim thc hin tip tc bng cch xem xt cy

    con tri ca gc vi cch lm tng t.

    4) X ln hn kha gc: tm kim thc hin tip tc bng cch xem xt cy

    con phi ca gc vi cch lm tng t.

    Nh vi cy Hnh CNPTK, nu X = 40, ta s thc hin.

    So snh X vi 44: X18, ta chuyn sang cy con phi.

    So snh X vi 37: X>37, ta chuyn sang cy con phi.

    So snh X vi 40: X=40, vy tm kim c tha.

  • Trang 31

    private Node find(Node r,Comparable target){

    if(r==null) return null;

    int result = target.compareTo(r.data);

    if(result==0) return r;

    if(result

  • Trang 32

    2.3.4. Phn tch nh gi.

    Tt c cc thao tc tm kim, b sung, loi b trn CNPTK u c phc tp trung

    bnh O h , vi h l chiu cao ca cy.

    Trong trng hp tt nht, CNPTK c n nt s c cao h = log2 n . Chi ph tm

    kim khi s tng ng tm kim nh phn trn mng c th t.

    Tuy nhin, trong trng hp xu nht, cy c th b suy bin thnh 1 DSLK khi m

    mi nt u ch c mt con tr nt l . Lc cc thao tc trn s c phc tp O n . V

    vy cn c ci tin cu trc ca CNPTK t c chi ph cho cc thao tc l log2 n .

    2.4. Cy nh phn cn bng tm kim.

    2.4.1. Cy nh phn cn bng hon ton.

    2.4.1.1. nh ngha:

    Cy cn bng hon ton l cy nh phn tm kim m ti mi nt ca n, s nt ca

    cy con tri chnh lch khng qu mt so vi s nt ca cy con phi.

    2.4.1.2. nh gi:

    Mt cy rt kh t c trng thi cn bng hon ton v cng rt d mt cn bng

    v khi thm hay loi b cc nt trn cy c th lm cy mt cn bng xc sut rt ln), chi

    ph cn bng li cy ln v phi thao tc trn ton b cy. Tuy nhin nu cy cn i th vic

    tm kim s nhanh. i vi cy cn bng hon ton, trong trng hp xu nht th ta ch phi

    tm qua log2n phn t n l s nt trn cy .

    Do CCBHT l mt cu trc km n nh nn trong thc t khng th s dng. Nhng

    u im ca n li rt quan trng. V vy, cn a ra mt CTDl khc c c tnh ging

    CCBHT nhng n nh hn. Nh vy, cn tm cc t chc mt cy t trng thi cn bng

    yu hn v vic cn bng li ch xy ra phm vi cc b nhng vn phi bo m chi ph

    cho thao tc tm kim t mc O(log2n).

    2.4.2.Cy nh phn t cn bng (cy AVL).

    Cy AVL c gi theo tn ca hai ngi xut chng, G.M. Adelson-

    Velsky v E.M. Landis, c cng b trong bi bo ca h vo nm 1962: "An algorithm for

    the organization of information." (Mt thut ton v t chc thng tin).

    2.4.2.1. nh ngha:

  • Trang 33

    Cy nh phn tm kim cn bng l cy m ti mi nt ca n cao ca cy con tri

    v ca cy con phi chnh lch khng qu mt.

    Cy cn bng hon ton l cy AVL, nhng cy AVL cha chc l cy cn bng hon

    ton. Tnh cn i ca cy AVL nh hn so vi tnh cn i ca cy nh phn cn bng hon

    ton.

    2.4.2.3. Cc thao tc trn cy AVL.

    Cc thao tc trn cy AVL bao gm:

    Gii thut chn.

    Gii thut xa.

    Khi chng ta thc hin chn hay xa th chiu cao ca cy s mt cn bng nn ta c

    cc php quay cy to li cn bng cho cy.

    uay n phi - phi (right - right)

    uay n tri - tri left - left).

    uay kp tri - phi (left - right).

    uay kp phi - tri right - left).

    2.4.2.4. Ci t cy AVL.

    nh ngha cy AVL.

    public class AVLTree{

    private class AVLNode{

    private int data;

    private AVLNode left, right;

    }

    AVLNode root;

    }

    Khi to cy AVL.

    public AVLNode(){

    data = 0;

    left = right = null;

    }

  • Trang 34

    public AVLNode(int x){

    data = x;

    left = right = null;

    }

    public AVLTree(){

    root = null;

    }

    Gii thut tnh chiu cao ca cy.

    publicint high(AVLNode T){

    if (T==null) return 0;

    return 1 + Math.max(high(T.left),high(T.right));

    }

    Gii thut tm kim Node nh nht.

    private Node findMin(Node t){

    if(t == null) return t;

    while(t.pLeft != null) t = t.pLeft;

    return t;

    }

    Gii thut chn.

    Vic i theo ng tm kim trn cy thy c kha mi cha c sn trn cy v

    bit c "ch" b sung n vo, tt nhin c thc hin tng t nh vic b sung mt

    node vo trong cy nh phn.

    Khi chng ta chn mt node trn cy AVL th tnh cn bng s b ph v, cn mt

    hoc hai php quay ti cn bng AVL, nn ta s c thm cc gii thut quay cy nh sau:

    Trng hp 1(LL): Quay phi ti Node gc.

  • Trang 35

    public AVLNode qL(AVLNode T){

    AVLNode x = T;

    AVLNode y = x.left;

    x.left = y.right;

    y.right = x;

    return y;

    }

    Trng hp 2 (LR): Trc ht thc hin php quay tri ti Node gc ca cy con

    tri a v TH1 LL sau thc hin php quay phi ti Node gc cha.

    public AVLNode qLR(AVLNode T){

    AVLNode x = T;

    AVLNode y = x.right;

    AVLNode z = y.left;

    x.right = z.left; y.left = z.right;

    z.left = x; z.right = y;

    return z;

    }

    Trng hp 3(RR): Thc hin php quay tri ti Node gc.

  • Trang 36

    public AVLNode qR(AVLNode T){

    AVLNode x = T;

    AVLNode y = x.right;

    x.right = y.left;

    y.left = x;

    return y;

    }

    Trng hp 4 (RL): Trc ht thc hin php quay phi ti Node gc ca cy con

    tri a v TH3 RR sau thc hin php quay tri ti Node gc ca cy.

    public AVLNode qRL(AVLNode T){

    AVLNode x = T;

    AVLNode y = x.left;

    AVLNode z = y.right;

    y.right = z.left; x.left = z.right;

    z.left = y; z.right = x;

    return z;

    }

    T cc php quay trn ta c gii thut chn nh sau:

    public AVLNode insert(int x, AVLNode T){

    if (T==null) T = new AVLNode(x);

    else{

    if(T.data==x) System.out.println("Trung");

    else{

    if (x1)

  • Trang 37

    if (h1>h2)

    if (high(T.left.left)>high(T.left.right)) qL(T);

    else qRL(T);

    else if (high(T.right.left)>high(T.right.right)) qR(T);

    else qLR(T);

    return T;

    }

    }

    }

    Gii thut xa.

    Loi b ging nh gii thut loi b ca cy nh phn, ch khc l sau khi loi b cy

    b mt cn i v phi ti cn i bng php quay nh lm khi b sung. Vic hy 1 nt c

    th phi cn bng dy chuyn cc nt t gc cho n phn t b hy trong khi thm vo ch

    cn 1 ln cn bng cc b.

    private Node remove(int x, Node t){

    if(t == null) return t;

    if(x < t.number) t.pLeft = remove(x, t.pLeft);

    elseif(x > t.number) t.pRight = remove(x, t.pRight);

    else if(t.pLeft != null&& t.pRight != null){

    t.number = findMin(t.pRight).number;

    t.pRight = remove(t.number, t.pRight);

    }

    else t = (t.pLeft != null) ? t.pLeft : t.pRight;

    if(getHeight(t.pLeft) - getHeight(t.pRight) > 1)

    if(getHeight(t.pLeft.pLeft) >= getHeight(t.pLeft.pRight)) t = qL(t);

    else t = qRL(t);

    elseif(getHeight(t.pRight) - getHeight(t.pLeft) > 1)

    if(getHeight(t.pRight.pRight) >= getHeight(t.pRight.pLeft)) t = qR(t);

    else t = qLR(t);

    return t;

    }

    2.4.2.5. nh gi.

    Cy nh phn tm kim m lun c dng cn i AVL, th chi ph tm kim i vi n

    ngay trong trng hp xu nht vn l O log2n).

  • Trang 38

    Ta bit cy tm kim nh phn thng thng c nhng thu li ln v mt lu tr

    v truy xut d liu trong php ton tm kim thm vo hay loi b mt phn t. Do , cy

    tm kim nh phn xem ra l mt cu trc lu tr d liu tt.

    Tuy nhin, trong mt s trng hp cy tm kim nh phn c mt s hn ch. N

    hot ng tt nu d liu c chn vo cy theo th t ngu nhin. Tuy nhin, nu d liu

    c chn vo theo th t c sp xp s khng hiu qu. Khi cc tr s cn chn c

    sp xp th cy nh phn tr nn khng cn bng. Khi cy khng cn bng, n mt i kh

    nng tm kim nhanh (hoc chn hoc xa mt phn t cho.

  • Trang 39

    CHNG 3. M PHNG TRC QUAN CC PHP

    TON TRN HNG I V CY.

    3.1. Phn tch v tng.

    3.1.1. Phn tch.

    Chng trnh m phng t ng bc thc hin mt cch trc quan, sinh ng, ng

    thi gip ngi s dng d dng hiu c ngha ca thut ton (xut hin bn phi

    chng trnh v phn thng tin gc phi chng trnh , m rng t duy trong vic hc v

    dy.

    Mc tiu: M phng cc thut ton c bn ca hng i v cy bng ha bao gm:

    Array Queue.

    Linked Queue.

    Binary Tree.

    Binary Search Tree.

    Balance Binary Search Tree.

    Mc ch ca chng trnh ny nhm m phng mt cch n gin cc thut ton c

    bn nn c vit bng ngn ng java trn nn eclipse. ua , ngi dng c th t thit

    k v ci t chng trnh ca mnh t cc bc m phng trc quan m chng trnh mu

    ang s dng em li.

    u trnh nhp d liu c thm nt add random nhp d liu ngu nhin t

    my tnh gip ngi s dng nhanh chng nhp d liu hn so vi nhp t bn phm.

    Thao tc trn hng i v cy rt n gin. Ngi dng ch cn nhn vo din tch m

    phng th s hin ra cc thao tc c th s dng, nhng khng c chy cng lc cc thao

    tc vi nhau nhm hn ch li c th xy ra v gip vic quan st t ng bc m phng

    khng b gin on.

    Ring i vi cy, chng trnh c b sung thm hai chc nng gip vic m

    phng c ti u hn:

    Chc nng v li v tr mc nh tt c cc Node ca cy hin hnh ng thi

    dch chuyn cy gia mn hnh m phng khng thu nh cy gip cho

    ngi dng tin li hn khi mun phng to hay thu nh khung chng trnh.

    Chc nng bt tt a ch cc Node trn cy gip ngi dng ty chnh vic

    bt tt vic hin th a ch cc Node theo mun khng thay i c a

    ch cc Node .

  • Trang 40

    3.1.2. tng.

    3.2. Giao din chnh.

    Gm 3 phn chnh:

    jPanel hin th qu trnh m phng bng giao din.

    jList hin th on code ang c gi v tr vo dng lnh ang thc hin.

    jTextArea hin th thng tin ti thi im cu lnh thc hin.

    Khung hin th

    ha

    Thanh iu chnh

    tc

    Nt Play/Pause Nt Reset

    Danh sch cc

    dng lnh

    Thng tin tng dng

    lnh

    Cc Menu chnh

    Hnh 1: Giao din Chng Trnh

  • Trang 41

    Hnh 3: u trnh Push gi tr vo Array ueue

    Hnh 2: Giao din ca ueue ci t bng mng.

  • Trang 42

    Hnh 5: Giao din ca Cy nh phn

    Hnh 4: Giao din ca ueue ci t bng LinkedList.

  • Trang 43

    Hnh 7: u trnh Xoay Cy trong Cy nh phn tm kim t cn bng

    Hnh 6: Php tm kim trong Cy nh phn tm kim

  • Trang 44

    Cc thao tc khi thc hin trn cy

    Thm Add

    thm t bn phm Add number s .

    thm ngu nhin Add random .

    Tm kim mt node (Find value).

    Duyt cy Traveral .

    Duyt trc (PreOder).

    Duyt gia (InOrder).

    Duyt sau (PostOder).

    Duyt theo mc (LevelOrder).

    Xa Node Delete .

    V li v tr ca cy Repaint Location .

    Hin th a ch node v n a ch node (Show address/ Hide address).

  • Trang 45

    KT LUN 1. u im.

    Giao din d s dng. Ngi hc c th tip thu mt cch nhanh chng cc t

    tng ca gii thut.

    Phn ln l ting Vit.

    Phn mm m phng cho ngi dng thy c tng quan v gii thut ca

    cy v hng i.

    2. Nhc im.

    Giao din ha cha thc s hp dn.

    Chng trnh ch thc hin m phng, cha c cc ng dng thc t.

    3. Hng pht trin.

    Ci tin giao din phn mm.

    Thm cc chc nng khc h tr vic dy nh lm bi tp, mini game.

  • Trang 46

    NHN XT CA GIO VIN HNG DN

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

  • Trang 47

    NHN XT CA GIO VIN PHN BIN .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................

    .....................................................................................................................................................