cây nptk

19
CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 Click To Edit Master Title Style 1 NỘI DUNG CÂY NHỊ PHÂN TÌM KIẾM

Upload: ngoctuong

Post on 17-Dec-2015

12 views

Category:

Documents


0 download

DESCRIPTION

Slide cây nhị phân tìm kiếm hay

TRANSCRIPT

  • Cu

    tr

    c d

    liu

    v

    thu

    t gi

    iC

    U

    TR

    C

    D

    LI

    U V

    G

    II T

    HU

    T

    1

    Click To Edit Master Title Style

    1

    NI DUNG

    CY NH PHN TM KIM

  • Cu

    tr

    c d

    liu

    v

    thu

    t gi

    iC

    U

    TR

    C

    D

    LI

    U V

    G

    II T

    HU

    T

    1

    Click To Edit Master Title Style

    2

    nh ngha cy nh phn tm kim

    Cy nh phn Bo m nguyn tc b tr kho ti mi nt:

    Cc nt trong cy tri nh hn nt hin hnh Cc nt trong cy phi ln hn nt hin hnh

    18

    13 37

    15 23 40

    V d:

  • Cu

    tr

    c d

    liu

    v

    thu

    t gi

    iC

    U

    TR

    C

    D

    LI

    U V

    G

    II T

    HU

    T

    1

    Click To Edit Master Title Style

    3

    u im ca cy nh phn tm kim Nh trt t b tr kha trn cy :

    nh hng c khi tm kim Cy gm N phn t :

    Trng hp tt nht h = log2N Trng hp xu nht h = Ln Tnh hung xy ra trng hp xu nht ?

  • Cu

    tr

    c d

    liu

    v

    thu

    t gi

    iC

    U

    TR

    C

    D

    LI

    U V

    G

    II T

    HU

    T

    1

    Click To Edit Master Title Style

    4

    Cu trc d liu ca cy nh phn tm kim Cu trc d liu ca 1 nt

    typedef struct tagTNode{

    int Key; //trng d liu l 1 s nguynstruct tagTNode *pLeft; struct tagTNode *pRight;

    }TNode; Cu trc d liu ca cy

    typedef TNode *TREE;

  • Cu

    tr

    c d

    liu

    v

    thu

    t gi

    iC

    U

    TR

    C

    D

    LI

    U V

    G

    II T

    HU

    T

    1

    Click To Edit Master Title Style

    5

    Cc thao tc trn cy nh phn tm kim

    To 1 cy rng

    To 1 nt c trng Key bng x

    Thm 1 nt vo cy nh phn tm kim

    Xo 1 nt c Key bng x trn cy

    Tm 1 nt c kho bng x trn cy

  • Cu

    tr

    c d

    liu

    v

    thu

    t gi

    iC

    U

    TR

    C

    D

    LI

    U V

    G

    II T

    HU

    T

    1

    Click To Edit Master Title Style

    6

    To cy rng Cy rng -> a ch nt gc bng NULL

    void CreateTree(TREE &T){

    T=NULL;}

  • Cu

    tr

    c d

    liu

    v

    thu

    t gi

    iC

    U

    TR

    C

    D

    LI

    U V

    G

    II T

    HU

    T

    1

    Click To Edit Master Title Style

    7

    To 1 nt c Key bng xTNode *CreateTNode(int x){

    TNode *p;p = new TNode; //cp pht vng nh ngif(p==NULL)

    exit(1); // thotelse{

    p->key = x; //gn trng d liu ca nt = xp->pLeft = NULL; p->pRight = NULL;

    }return p;

    }

  • Cu

    tr

    c d

    liu

    v

    thu

    t gi

    iC

    U

    TR

    C

    D

    LI

    U V

    G

    II T

    HU

    T

    1

    Click To Edit Master Title Style

    8

    Thm mt nt x Rng buc: Sau khi thm cy m bo l cy

    nh phn tm kim.int insertNode(TREE &T, Data X){ if(T)

    { if(T->Key == X) return 0; if(T->Key > X) return insertNode(T->pLeft, X);else return insertNode(T->pRight, X);}T = new TNode;if(T == NULL) return -1; T->Key = X;T->pLeft =T->pRight = NULL;

    return 1; }

  • Cu

    tr

    c d

    liu

    v

    thu

    t gi

    iC

    U

    TR

    C

    D

    LI

    U V

    G

    II T

    HU

    T

    1

    Click To Edit Master Title Style

    9

    Minh ha thm 1 phn t vo cy

    44

    18 88

    13 37 59 108

    15 23 40 55 71

    Them X=5044 < X

    88 > X

    59 > X

    5055 > X

  • Cu

    tr

    c d

    liu

    v

    thu

    t gi

    iC

    U

    TR

    C

    D

    LI

    U V

    G

    II T

    HU

    T

    1

    Click To Edit Master Title Style

    10

    Tm nt c kho bng x (khng dng quy)TNode * searchNode(TREE Root, Data x){ Node *p = Root;

    while (p != NULL){ if(x == p->Key) return p;

    else if(x < p->Key) p = p->pLeft;else p = p->pRight;

    }return NULL;

    }

  • Cu

    tr

    c d

    liu

    v

    thu

    t gi

    iC

    U

    TR

    C

    D

    LI

    U V

    G

    II T

    HU

    T

    1

    Click To Edit Master Title Style

    11

    Tm nt c kho bng x (dng quy)TNode *SearchTNode(TREE T, int x){

    if(T!=NULL){

    if(T->key==x)return T;

    elseif(x>T->key)

    return SearchTNode(T->pRight,x);else

    return SearchTNode(T->pLeft,x);}return NULL;

    }

  • Cu

    tr

    c d

    liu

    v

    thu

    t gi

    iC

    U

    TR

    C

    D

    LI

    U V

    G

    II T

    HU

    T

    1

    Click To Edit Master Title Style

    12

    Minh ho tm mt nt

    44

    18 88

    13 37 59 108

    15 23 40 55 71

    Tm X=55

    Tm thy X=55

    55

    55

  • Cu

    tr

    c d

    liu

    v

    thu

    t gi

    iC

    U

    TR

    C

    D

    LI

    U V

    G

    II T

    HU

    T

    1

    Click To Edit Master Title Style

    13

    Minh ho thnh lp 1 cy t dy s9, 5, 4, 8, 6, 3, 14,12,13

    9

    5 14

    84

    63

    12

    13

  • Cu

    tr

    c d

    liu

    v

    thu

    t gi

    iC

    U

    TR

    C

    D

    LI

    U V

    G

    II T

    HU

    T

    1

    Click To Edit Master Title Style

    14

    Hy 1 nt c kho bng X trn cyHy 1 phn t trn cy phi m bo iu kin

    rng buc ca Cy nh phn tm kim

    C 3 trng hp khi hy 1 nt trn cy TH1: X l nt l

    TH2: X ch c 1 cy con (cy con tri hoc cy con phi)

    TH3: X c y 2 cy con

    TH1: Ta xo nt l m khng nh hng n cc nt khc ttrn cy

    TH2: Trc khi xo x ta mc ni cha ca X vi con duy nht ca X.

    TH3: Ta dng cch xo gin tip

  • Cu

    tr

    c d

    liu

    v

    thu

    t gi

    iC

    U

    TR

    C

    D

    LI

    U V

    G

    II T

    HU

    T

    1

    Click To Edit Master Title Style

    15

    Minh ho hy phn t x c 1 cy con

    44

    18 88

    13 59 10837

    15 23 55 71

    Hy X=37

  • Cu

    tr

    c d

    liu

    v

    thu

    t gi

    iC

    U

    TR

    C

    D

    LI

    U V

    G

    II T

    HU

    T

    1

    Click To Edit Master Title Style

    16

    Hy 1 nt c 2 cy conTa dng cch hy gin tip, do X c 2 cy conThay v hy X ta tm phn t th mng Y. Nt Y c

    ti a 1 cy con. Thng tin lu ti nt Y s c chuyn ln lu ti

    X.Ta tin hnh xo hy nt Y (xo Y ging 2 trng

    hp u)Cch tm nt th mng Y cho X: C 2 cch

    C1: Nt Y l nt c kho nh nht (tri nht) bn cy con phi X

    C2: Nt Y l nt c kho ln nht (phi nht) bn cy con tri ca X

  • Cu

    tr

    c d

    liu

    v

    thu

    t gi

    iC

    U

    TR

    C

    D

    LI

    U V

    G

    II T

    HU

    T

    1

    Click To Edit Master Title Style

    17

    Minh ha hy phn t X c 2 cy con

    44

    18 88

    13 37 59 108

    15 23 40 55 71

    30

    Xo nt c trng

    Key = 18, lc nt c kho 23 l nt th mng

  • Cu

    tr

    c d

    liu

    v

    thu

    t gi

    iC

    U

    TR

    C

    D

    LI

    U V

    G

    II T

    HU

    T

    1

    Click To Edit Master Title Style

    18

    Ci t thao tc xo nt c trng Key = xvoid DeleteNodeX1(TREE &T,int x){

    if(T!=NULL){

    if(T->KeyRight,x);else{

    if(T->Key>x) DeleteNodeX1(T->Left,x);else //tim thy Node c trng d liu = x{ TNode *p;

    p=T;if (T->Left==NULL) T = T->Right;else{ if(T->Right==NULL) T=T->Left;

    else ThayThe1(p, T->Right);// tm bn cy con phi

    }delete p;

    }}

    }else printf("Khong tim thay phan can xoa tu");}

  • Cu

    tr

    c d

    liu

    v

    thu

    t gi

    iC

    U

    TR

    C

    D

    LI

    U V

    G

    II T

    HU

    T

    1

    Click To Edit Master Title Style

    19

    Hm tm phn t th mng void ThayThe1(TREE &p, TREE &T)

    { if(T->Left!=NULL)

    ThayThe1(p,T->Left);

    else

    {

    p->Key = T->Key;

    p=T;

    T=T->Right;

    }

    }