cây nptk
DESCRIPTION
Slide cây nhị phân tìm kiếm hayTRANSCRIPT
-
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;
}
}