Академический Документы
Профессиональный Документы
Культура Документы
Gi ng vin:
Vn Ch Nam Nguy n Th H ng Nhung ng Nguy n c Ti n
Kenneth H.Rosen, Ton r i r c ng d ng trong Tin h c, ltb. 5, nxb. Gio D c, 2007, tr. 131 -143. Mark A. Weiss, Data Structures & Algorithm Analysis in C++, 2nd edition, Addision Wesley, 1998, p. 41 67. inh M nh T ng, Gio trnh C u trc d li u, i h c Khoa h c T nhin, HQGHN.
HCMUS - 2009 Bi gi ng C u trc d li u 1 Vn Ch Nam Nguy n Th H ng Nhung ng Nguy n c Ti n 2
HCMUS - 2009
a b d i o j p e k q f l g m c h n
HCMUS - 2009
S t ch c
HCMUS - 2009
Cy th m c
5
B c=k
Nt g c
r
cao = 3
B c=2
rk r1 r2 rk k1 T1 T2 Tk k3
Cy con Nt l ng i
HCMUS - 2009
k2
k4
k5
k6
7
Parent(a)?
Tm cha m t nh.
Parent(x)
Parent(b) = a
EldestChild(c) = g
Tm nh con tri nh t.
EldestChild(x)
Tm nh k ph i.
NextSibling(x)
NextSibling(g) =h
NextSibling(h)?
HCMUS - 2009 Bi gi ng C u trc d li u 1 Vn Ch Nam Nguy n Th H ng Nhung ng Nguy n c Ti n 8
Duy t tr c (preorder)
abdeijcfgkh
Duy t gi a (inorder)
dbiejafckgh
d
HCMUS - 2009
HCMUS - 2009
10
void Inorder(NODE A) { NODE B; B = EldestChild(A); if (B != ) { Inorder(B); B = NextSibling(B); } Visit(A); while (B != ) { Inorder(B); B = NextSibling(B); } }
HCMUS - 2009
11
Ci t b i m ng
info 1 2 3 4 5 6 7 8 9 10 11 a b c d e f g h i j k 11 9 10
child
id 2 4 6
next 3 5 7 8
HCMUS - 2009
12
Ci t b i con tr
A
Root
HCMUS - 2009
13
Bi u di n b ng m ng
Info 1 2 3 4 5 6 7 8 9 10 11
HCMUS - 2009
Eldest Child 2 4 6 0 9 0 11 0 0 0 0
Next Sibling 0 3 0 5 0 7 8 0 10 0 0
a b c d e f g h i j k
14
Bi u di n b ng con tr
A
Root
HCMUS - 2009
15
Bi u di n b ng m ng
Info 1 2 3 4 5 6 7 8 9 10 11
HCMUS - 2009
Parent 0 1 1 2 2 3 3 3 5 5 7
a b c d e f g h i j k
16
typedef struct stNODE { Data key; struct stNODE *pLeft; struct stNODE *pRight; }NODE;
17
HCMUS - 2009
sin
30
Cy bi u th c: 4 * (3 4) + (1 + sin(30))
HCMUS - 2009 Bi gi ng C u trc d li u 1 Vn Ch Nam Nguy n Th H ng Nhung ng Nguy n c Ti n 18
Cy nh phn tm ki m l cy nh phn th a mn cc i u ki n sau: 1. Kha c a cc nh thu c cy con tri nh hn kha g c. 2. Kha c a g c nh hn kha cc nh thu c cy con ph i. 3. Cy con tri v cy con ph i c a g c cng l cy nh phn tm ki m.
HCMUS - 2009
19
10
23
6
HCMUS - 2009
20
20
c i m:
C th t Khng c ph n t trng D dng t o d li u s p x p, v tm ki m
HCMUS - 2009
21
void Search(Data x, NODE *root, NODE *&p) { p = root; if (p != ) { if (x < p->key) Search(x, p->pLeft, p); else if (x > p->key) Search(x, p->pRight, p); } }
K t qu c a hm?
HCMUS - 2009
22
15
19 16
Nu nh n xt
C th d dng t o d li u s p x p n u dng php duy t gi a
1
HCMUS - 2009
13 14 19
18
13
14
15
16
18
23
Thm x vo cy root:
So snh x v rootkey N u nh hn th thm vo nhnh tri N u l n hn th thm vo nhnh ph i
HCMUS - 2009
24
void Insert (NODE *root, Data x) { NODE *q; q = new NODE; if (root == ){ q->key = x; q->pLeft = q->pRight = ; root = q; } else { if (x < root -> key) Insert (root -> pLeft, x); else if (x > root -> key) Insert (root -> pRight, x); } }
HCMUS - 2009
25
HCMUS - 2009
26
nh c n xa l node l V d : xa nh 55
18 8 8 18
35 20 50
35 20 50
55
Ch n gi n xa nh ra kh i cy
HCMUS - 2009 Bi gi ng C u trc d li u 1 Vn Ch Nam Nguy n Th H ng Nhung ng Nguy n c Ti n 27
35 20 50
35 20 55
55
nh c n xa c 2 node con: v d xa 35
18 8
35 20 19 50
40
55
C n tm ph n t th m ng
HCMUS - 2009 Bi gi ng C u trc d li u 1 Vn Ch Nam Nguy n Th H ng Nhung ng Nguy n c Ti n 29
nh c n xa c 2 node con:
Ph n t th m ng l ph n t l n nh t bn nhnh tri
18 8 8 18
20 35 20 19 50
20 19 50
40
55
40
55
HCMUS - 2009
30
nh c n xa c 2 node con:
Ph n t th m ng l ph n t nh nh t bn nhnh ph i
18 8 8 18
40 35 20 19 50
40 20 50
40
55
19
55
HCMUS - 2009
31
HCMUS - 2009
32
1. Cho cy nhi phn tm ki m t cc kha sau: 55 44 12 42 94 18 6 67 39 75 105 58 23 53 15 8 79 11. Cho bi t hnh nh cy sau khi l n l t xa cc nt c kha: 55 12 44 94
HCMUS - 2009
33
HCMUS - 2009
34
i v i php tm ki m:
Tr ng h p t t nh t: m i nt (tr nt l) u c 2 con: O(log2n) (chnh l chi u cao c a cy). Tr ng h p x u nh t: cy tr thnh danh sch lin k t: O(n). Tr ng h p trung bnh l bao nhiu? O(log2n)
HCMUS - 2009
35
3. Xy d ng gi i thu t th c hi n cc thao tc sau trn cy nh phn tm ki m: - m s node trong cy. - m s node l. - Tnh cao cy. - Tnh cao c a node x trong cy. - Xu t ra cc node c cng m c x. - Xu t ra cc node nh hn x.
HCMUS - 2009
36
HCMUS - 2009
37
HCMUS - 2009
38
Do G.M. Adelsen Velskii v E.M. Lendis a ra vo nm 1962. Cn g i l cy AVL. Cy cn b ng l cy nh phn tm ki m m t i m i nh c a cy, cao c a cy con tri v cy con ph i khc nhau khng qu 1.
HCMUS - 2009
40
V d :
12 8 8 12
18 11 17
18
11
17
4 2
Cy cn b ng?
Cy cn b ng?
HCMUS - 2009
41
10
23
20
HCMUS - 2009
43
Gi s ta chn nh m i vo g c P, c th c cc tr ng h p sau:
P = : khi chn nh m i, ta c cy c P.bal = 0. P , P.bal = 0. Chn nh m i vo khng lm l ch cy. P , P.bal = 1 (ho c 2), chn nh m i vo cy con ph i (ho c tri). Cy v n cn b ng. P , P.bal = 1 (ho c 2), chn nh m i vo cy con tri (ho c ph i). Cy c kh nng m t cn b ng.
HCMUS - 2009 Bi gi ng C u trc d li u 1 Vn Ch Nam Nguy n Th H ng Nhung ng Nguy n c Ti n 44
HCMUS - 2009
45
Q l ch ph i (RR):
P a b T1 h T2 h T3 h+1 T1 h T2 h Q a T3 h+1 Quay tri cy P P b
Q l ch ph i (RR):
Quay tri cy P P 18 Q 8 35 20 50 8 18 20 35 50
55
55
HCMUS - 2009
47
Q l ch tri (RL): B c 1
P a Q T1 h c b T1 h h T2 h c Quay ph i cy Q a Q P
T4
T2
T3
h-1
Q C Q C P
T3 h- 1 T4
HCMUS - 2009
48
Q l ch tri (RL): B c 2
P a Q T1 h T2 h c a b Quay tri cy P c P
T1
T2 h
T3 h- 1
T4 h
T3 h- 1 T4
HCMUS - 2009
49
Q l ch tri (RL) B c 1:
P
35
Quay ph i cy Q
35
Q
18 50 18 40
20
40
55
20
37
50
37
45
65
36
45
55
36
65
HCMUS - 2009
50
Q l ch tri (RL) B c 2:
P
35
Quay tri cy P
40
Q
18 40 35 50
20
37
50
18
37
45
55
36
45
55
20
36
65
65
HCMUS - 2009
51
Lm tng t nh khi l ch ph i
HCMUS - 2009
52
Theo Wikipedia
HCMUS - 2009 Bi gi ng C u trc d li u 1 Vn Ch Nam Nguy n Th H ng Nhung ng Nguy n c Ti n 53
Th c hi n tng t cy nh phn tm ki m: xt 3 tr ng h p, v tm ph n t th m ng n u c n. Sau khi xa, n u cy l ch, th c hi n cn b ng cy. Lu : vi c cn b ng sau khi h y c th x y ra dy chuy n.
HCMUS - 2009
54
V d : xa 35
Ph n t th m ng l 36
40 40
35
50
36
50
18
37
45
55
18
37
45
55
20
36
65
20
65
Cy v n cn b ng nn khng ph i hi u ch nh
HCMUS - 2009
55
Xa ph n t 45
40 40
36
50
36
50
18
37
45
55
18
37
55
20
65
20
65
Node 50 b l ch ph i !!!
HCMUS - 2009
56
Xa ph n t 45: cn b ng l i cy
Quay tri t i node 50
40 40
36
50
36
55
18
37
55
18
37
50
65
20
65
20
HCMUS - 2009
57
HCMUS - 2009
58
Phng php XL ng Bi t p
HCMUS - 2009
59
. Bi u di n tnh tr ng cy cn b ng AVL sau khi thm cc node sau: 24,12,6,21,32,17,9,5,20,7,19,30,22,27,28 Xa tu n t cc node: 7, 27,12, n u cy m t cn b ng thi cho bi t tr ng h p m t cn b ng va hi u ch nh cy
HCMUS - 2009
60
Hy gn cc s 21,3,5,2,19,7,11,17,13 vo cc v tr thch h p trn cy sao cho cy th a tnh ch t cy nhi phn tm ki m V i cy NPTK a c cu trn, hy th c hi n cc thao tc c n thi t cy tr thnh cy AVL. Sau o ti p t c thm cc node 25,22,30,8,4,45 vo cy AVL (cho bi t cc tr ng h p m t cn b ng va hi u ch nh)
HCMUS - 2009
61
2. Hy v cy AVL v i 12 nt c chi u cao c c i trong t t c cc cy AVL 12 nt. 3. Tm 1 dy N kho sao cho khi l n l t dng thu t ton thm vo cy AVL s ph i th c hi n m i thao tc cn b ng (LL, LR, RL, RR) l i t nh t 1 l n.
HCMUS - 2009
62
HCMUS - 2009
63