Upload
ngoc-nhan-tran
View
21
Download
0
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 .....................................................................................................................................................
.....................................................................................................................................................
.....................................................................................................................................................
.....................................................................................................................................................
.....................................................................................................................................................
.....................................................................................................................................................
.....................................................................................................................................................
.....................................................................................................................................................
.....................................................................................................................................................
.....................................................................................................................................................
.....................................................................................................................................................
.....................................................................................................................................................
.....................................................................................................................................................
.....................................................................................................................................................
.....................................................................................................................................................
.....................................................................................................................................................
.....................................................................................................................................................
.....................................................................................................................................................
.....................................................................................................................................................
.....................................................................................................................................................
.....................................................................................................................................................
.....................................................................................................................................................
.....................................................................................................................................................
.....................................................................................................................................................
.....................................................................................................................................................
.....................................................................................................................................................
.....................................................................................................................................................
.....................................................................................................................................................
.....................................................................................................................................................
.....................................................................................................................................................
.....................................................................................................................................................
.....................................................................................................................................................
.....................................................................................................................................................
.....................................................................................................................................................
.....................................................................................................................................................