You are on page 1of 31

Gio n:

Cy nh phn tm kim

Hc vin thc hin: ng Th Thu
Cao hc: K15
Cao hc K15
Mn: ng dng CNTT trong dy hc

Ni dung chnh ca bi
I. nh ngha cy nh phn
II. Biu din cy nh phn
III. Cc php ton duyt cy nh phn
iV. Mt s thao tc trn cy nh phn
Bi tp

I. NH NGHA
Cy nh phn l cy c cc nt c
kho ha v c sp xp theo mt th t phn
nh v tr ca nt trong cy.
c im ca cy nh phn:
Mi nt trn cy ch c ti a 2 con.
Vi mi mt nt:+ Ton b nhng nt cy
con bn tri ca n u c kho nh hn kho
ca n.
+ Ton b nhng nt cy
con bn phi ca n u c kho ln hn kho
ca n.

V d:











y l cy nh phn vi ton t ng vi gc,
ton hng 1 ng vi cy con tri, ton hng 2 ng
vi cy con phi
+
+
x
*
v
y
-
z t
u
/
Mt s dng c bit ca cy nh phn










A
B
C
D
E
a) cy nhi phn
lch tri
a
b) Cy nh phn
lch phi
b
A
C
B
D
E
D
A
B
C
E
d
c
c, d) Cy nh phn
Cy zic- zc
Mt s dng c bit ca cy nh phn
(tip)










Cy nh phn gn y
A
C
G
H
B
E
J
D
F
I
Cy nh phn hon chnh
A
C
G
B
E
D
F
Cy nh phn y
II. BIU DIN CY NH PHN
1. Lu tr k tip.
Cy nh phn y :
- nh s cho cc nt trn cy theo th t ln
lt t mc 1 tr ln, ht mc ny n mc
khc, t tri sang phi i vi mi mc.
V d: nh s cy hnh di nh sau:

.


7
A
C
G
B
E
D
F 4 5
2
1
3
6
1. Lu tr k tip (tip).
Qui lut:
- Con ca nt th i l cc nt 2i v 2i + 1
- Cha ca nt th j l [j/2]
Ta lu tr cy nh phn y bng mt
vect V theo nguyn tc: nt th i ca cy c
lu tr V[1]. l cch lu tr k tip, bit
c a ch nt cha s tnh c a ch nt
con v ngc li.
Vy vi cy trn ta s c

A B C D E F G
V[1] V[2] V[3] V[4] V[5] V[6] V[7]
1. Lu tr k tip (tip).
Nhn xt:
- Vi cy nh phn hon chnh m cc nt
mc cui u dt v pha tri th cch lu tr
ny vn ph hp.
- Cc cy nh phn khc th cch lu tr ny
gy lng ph do c nhiu phn t b b trng.
- Do cy lun bin ng ( thm, bt cc nt)
nn cch lu tr ny rt kh khn cho cc thao
tc .
2. Lu tr mc ni
Mi nt gm:



Trong :
Left: ng vi con tr, tr ti cy
con tri ca nt .
Right:ng vi con tr, tr ti cy
con phi ca nt .
Infor: Thng tin ca nt.
Key: Kho ca nt.
Left Infor Key Right
Item
2. Lu tr mc ni(tip)
V d: Cy nh phn


c lu tr mc ni nh sau:
A
C
F
B
E
D
F
G
I
H
A
B
D
C
F
E
H I
G
T
Khai bo cy (Dng danh sch mc ni)
Type
Item_Type=Record
Key: Key_Type;
Infor:Data;
End;
Search_Type = ^ Node;
Node= Record
Item:Item_Type;
Left,Right: Search_Type;
End;
III. CC PHP DUYT CY NH PHN
Duyt theo th t trc.
(Gc T Cy con tri Cy con phi)
C th:
- Nu T rng khng lm g.
- Nu T Nul Th
+ Thm gc ca T
+ Duyt cy con tri ca T (Theo th t
trc)
+ Duyt cc cy con cn li (theo th t
trc)

Ci t

Procedure T_T_truoc(T:Search_type);
Begin
If T= Nil then write(Cay rong)
Else
Begin
Duyetgoc(T^.Node);
T_T_truoc(T^.Left);
T_T_truoc(T^.Right);
End;
End;
Duyt theo th t sau.
(Cy con tri Cy con phi Gc T )
C th:
- Nu cy T rng th khng lm g
- Nu cy T Nul th:
+ Duyt cy con tri ca T (theo th t
sau)
+ Duyt cc cy phi ca gc T (theo th
t sau)
+ Thm gc T

Ci t
Procedure T_T_sau(T:Search_type);
Begin
If T= Nil then write(Cay rong)
Else
Begin
T_T_sau(T^.Left);
T_T_sau(T^.Right);
Duyetgoc(T^.Node);
End;
End;
Duyt theo th t gia.
(Cy con tri Gc T Cy con phi)
C th:
- Nu T= Nul th khng lm g.
- Nu T Nul th
+ Duyt cy con tri ca ca T (theo th t
gia)
+ Thm gc T
+ Duyt cy con phi ca T (theo th t
gia)


Ci t
Procedure T_T_Giua(T:Search_type);
Begin
If T <> Nil then
Begin
T_T_Giua(T^.Left);
T_T_Giua(T^.Right);
Duyetgoc(T^.Node);
End;
End;

IV.MT S THAO TC TRN CY
NH PHN

1. Tr ra mt phn t c kho bit.
2. Chn mt phn t vo cy nh phn
3. Xo mt phn t khi cy nh phn
1. Tr ra mt phn t c kho bit.
Cch 1: Dng vng lp

Function phantu(T:search_Type;k:key_Type):Search_type
Var temp = Search_Type;
Begin
Temp:= T;
While (temp <>Nil) and (Tem^.Item.key<>k) Do
If Tem^.Item.key > k then Temp:=Temp ^.Left
Else Temp:= Temp ^. Right
Phantu:= Temp;
End;
1. Tr ra mt phn t c kho bit (tip)
Cch 2: Dng quy

Function
phantu(T:search_Type;k:key_Type):Search_type;
Begin
If T = Nil then phantu:= Nil
Else
If Tem^.Item.key = k then phantu:= T
Else phantu:= phantu(T ^.left)
Else phantu:= phantu(T ^. Right);
End;
2. Chn mt phn t vo cy nh phn
Cch thc hin:
- Tm v tr chn.
- Thc hin chn
Thut ton:
- Nu cy rng th chn vo gc.
- Nu kho ca phn t mi < kho ca
gc th chn vo cy con tri.
- Nu kho ca phn t mi > kho ca
gc th chn vo cy con phi.
2. Chn mt phn t vo cy nh phn (tip)
M ho
Procedure Insert(Var T:search_Type; new Item:Item_Type) ;
Begin
If T = Nil then
Begin
New(tg);
Tg^.Item:= NewwItem;
T ^.Tg;
T ^.Left:= Nil;
T ^.Right:= Nil;
End
Else
If Tem^.Item.key = T ^.Item.key then Insert(newItem,T ^.right)
Else Insert(NewItem. ^.Right);
End;
3. Xo mt phn t khi cy nh phn
Cch thc hin:
- Tm phn t cn xa.
- Xo (c 3 kh nng)
+ Nt cn xo l l (1).
+ Nt cn xo c mt cy con (2).
+ Nt cn xo c hai cy con (3).
3. Xo mt phn t khi cy nh phn (tip)
Gii thut: ng vi tng kh nng ta
lm nh sau
(1) Cho nt cha ch vo Nil
(2) Cho nt cha ca nt cn xo ch vo
nt con ca nt cn xo.
(3) + Tm phn t ln nht ca cy con
bn tri ca nt hoc phn t nh nht
ca cy con bn phi.
+ Thay phn t cn xo bng phn t
va tm thy.
+ Xo phn t ra khi cy
3. Xo mt phn t khi cy nh phn (tip)
M ho
Procedure Delete(k:key_Type; Var T: search_Type);
Begin
If k < T ^.Item.key then Delete(x,T ^.Left)
Else If x > T ^.Item.key then Delete(x, T ^.Right)
Else If T ^.Left=Nil then T:= T ^.Right
Else
If T ^.Right = Nil then T:= T ^.Left
Else
Begin
Temp:= T ^.Left;
While Temp ^.Right <> Nil Do Temp:= Temp ^.Right;
T ^.Item:=Temp ^.Item;
Delete(Temp ^.Item.key,T ^.Left);
End;
End;
CU HI V BI TP

Bi 1: V cy nh phn biu din cc biu
thc sau y v vit chng di dng tin
t, hu t
a) (a * b + c)/(d e * f)
b) A /(B + C) + D * E A * C
Bi 2: Cho cy nh phn







Hy vit cc nt c thm khi duyt cy ny:
a. Theo th t trc.
b. Theo th t gia.
c. Theo th t sau.
A
C
F
H
I
J
B
E
G
D
Bi 3: Cho cy nh phn







Hy minh ho phn b nh khi thc hin
lu tr k tip i vi cy trn
A
C
F
I
B
E
G
D
H
Bi 4: Tm cy nh phn m cc nt s
xut hin theo mt dy ging nhau khi
duyt:
a. Theo th t trc v th t gia.
b. Theo th t trc v th t sau.
c. Theo th t gia v th t sau.

You might also like