Download as pdf or txt
Download as pdf or txt
You are on page 1of 19

CU TRC D LIU V GII THUT 1

Cu trc d liu v thut gii

NI DUNG Click To Edit Master Title Style

CY NH PHN TM KIM

nh ngha cy nh Master phn tm Title kim Click To Edit

Style

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
CU TRC D LIU V GII THUT 1

Cu trc d liu v thut gii

V d:
13

18

37

15
2

23

40

u Click im ca nh phn tm kim To cy Edit Master Title Style Nh trt t b tr kha trn cy :
nh hng c khi tm kim

Cy gm N phn t :
CU TRC D LIU V GII THUT 1

Cu trc d liu v thut gii

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

Cu trc d ca cy nh Title phn Style tm kim Click Toliu Edit Master


Cu trc d liu ca 1 nt typedef struct tagTNode { int Key; //trng d liu l 1 s nguyn struct tagTNode *pLeft; struct tagTNode *pRight; }TNode; Cu trc d liu ca cy typedef TNode *TREE;
4

CU TRC D LIU V GII THUT 1

Cu trc d liu v thut gii

Cc thao tc cy nh phn tmStyle kim Click To trn Edit Master Title


To 1 cy rng

To 1 nt c trng Key bng x


CU TRC D LIU V GII THUT 1

Cu trc d liu v thut gii

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

ToClick cy rng To Edit

Master Title Style

CU TRC D LIU V GII THUT 1

Cu trc d liu v thut gii

Cy rng -> a ch nt gc bng NULL void CreateTree(TREE &T) { T=NULL; }

ToClick 1 nt To c Key bng x Edit Master Title

Style

TNode *CreateTNode(int x) { TNode *p; p = new TNode; //cp pht vng nh ng if(p==NULL) exit(1); // thot else { p->key = x; //gn trng d liu ca nt = x p->pLeft = NULL; p->pRight = NULL; } return p; } 7

CU TRC D LIU V GII THUT 1

Cu trc d liu v thut gii

Thm mtTo ntEdit x Click


nh phn tm kim.

Master Title Style

Rng buc: Sau khi thm cy m bo l cy


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; }
8

CU TRC D LIU V GII THUT 1

Cu trc d liu v thut gii

Minh ha thm 1 phn t vo cy Click To Edit Master Title


Them X=50 44 44 < X

Style

18
CU TRC D LIU V GII THUT 1

88 > X

88

Cu trc d liu v thut gii

13

37

59 > X

59

108

15

23

40 55 > X

55

71

50
9

CU TRC D LIU V GII THUT 1

Cu trc d liu v thut gii

TmClick nt c kho bngMaster x (khng dng quy) To Edit Title Style 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; }
10

TmClick nt c kho bng x (dng quy) To Edit Master Title Style


TNode *SearchTNode(TREE T, int x) { if(T!=NULL) { if(T->key==x) return T; else if(x>T->key) return SearchTNode(T->pRight,x); else return SearchTNode(T->pLeft,x); } return NULL; } 11

CU TRC D LIU V GII THUT 1

Cu trc d liu v thut gii

Minh ho tm Click To mt Editnt Master Title


Tm X=55
18
CU TRC D LIU V GII THUT 1

Style

44

55
88

Cu trc d liu v thut gii

13

37

59

108

15

23

40

55

71

Tm thy X=55
12

Minh ho thnh lp Master 1 cy t Title dy s Click To Edit Style


9, 5, 4, 8, 6, 3, 14,12,13
9

5
CU TRC D LIU V GII THUT 1

14 12

Cu trc d liu v thut gii

4
3 6

13

13

Hy 1 nt To c kho X trn cyStyle Click Edit bng Master Title


Hy 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
CU TRC D LIU V GII THUT 1

Cu trc d liu v thut gii

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 14 gin tip

Minh ho hy phn Master t x c 1Title cy con Click To Edit Style


Hy X=37
18
Cu trc d liu v thut gii

44

88

CU TRC D LIU V GII THUT 1

13

37

59

108

15

23

55

71

15

Hy 1 nt To c 2 cy Master con Click Edit Title

Style

CU TRC D LIU V GII THUT 1

Cu trc d liu v thut gii

Ta dng cch hy gin tip, do X c 2 cy con Thay 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
16

Minh ha hy phn Master t X c 2 cy con Click To Edit Title Style


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

44

18
CU TRC D LIU V GII THUT 1

88

Cu trc d liu v thut gii

13

37

59

108

15

23

40

55

71

30
17

CiClick t thao xo nt c trng Key = x Totc Edit Master Title Style


void DeleteNodeX1(TREE &T,int x) { if(T!=NULL) { if(T->Key<x) DeleteNodeX1(T->Right,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

CU TRC D LIU V GII THUT 1

Cu trc d liu v thut gii

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

Hm tm phn t th mng Title Click To Edit Master


void ThayThe1(TREE &p, TREE &T) { if(T->Left!=NULL)
ThayThe1(p,T->Left);

Style

else
CU TRC D LIU V GII THUT 1

Cu trc d liu v thut gii

{
p->Key = T->Key;

p=T; T=T->Right;
}

19

You might also like