bai 2 - advanced data structures
TRANSCRIPT
-
8/9/2019 Bai 2 - Advanced Data Structures
1/33
1
Data Structures & Algorithms
Cc cu trc d liu nng cao
(Advanced data structures)
Nguyn Tri Tun
Khoa CNTT H.KHTN.Tp.HCMEmail: nttuan@ fit.hcmuns.edu.vn
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tri Tuan, DH.KHTN Tp.HCM 2
Advanced data structures
Review
Gii thiu
Cy en (Red Black Tree)
AA Tree
-
8/9/2019 Bai 2 - Advanced Data Structures
2/33
2
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tri Tuan, DH.KHTN Tp.HCM 3
Review
cao ca cy nh phn tm kim (BST) cnbng c N nodes l O(log2N)
Cy cn bng c chi ph thp
C nhiu cch xy dng cy nh phn tm kimcn bng:
AVL tree
Red-Black tree
AA tree
Splay tree
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tri Tuan, DH.KHTN Tp.HCM 4
Gii thiu
Cc thut ng thng dng:
BST
AVL tree
Red Black tree
AA tree
Splay tree / Top-down splay tree
-
8/9/2019 Bai 2 - Advanced Data Structures
3/33
3
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tri Tuan, DH.KHTN Tp.HCM 5
Advanced data structures
Review
Gii thiu
Cy en (Red Black Tree)
AA Tree
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tri Tuan, DH.KHTN Tp.HCM 6
Red Black Tree
nh ngha
Cu trc lu tr
Cc tnh cht
Cc thao tc c bn
nh gi
-
8/9/2019 Bai 2 - Advanced Data Structures
4/33
4
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tri Tuan, DH.KHTN Tp.HCM 7
Red Black Tree (tt)
nh ngha: Red-Black tree l mt cy nh phntm kim (BST) tun th cc quy tc sau:
[1] Mi node phi l hoc en
[2] Node gc l en
[3] Cc node ngoi (external node; NULL node) mcnh l nhng node en
[4] Nu mt node l , nhng node con ca n phil en
[5] Mi ng dn t gc n node ngoi phi c
cng s lng node en
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tri Tuan, DH.KHTN Tp.HCM 8
Red Black Tree (tt)
Minh ha Red-Black tree
H = 4
Hb = 2
H = 3
Hb = 2
H = 2
Hb = 1
H = 1
Hb = 1
H = 1
Hb = 1
H = 3
Hb = 2
H = 2
Hb = 1
-
8/9/2019 Bai 2 - Advanced Data Structures
5/33
5
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tri Tuan, DH.KHTN Tp.HCM 9
Red Black Tree (tt)
Chiu cao en (black height hb(x)): l s nodeen trn ng i t node xn node ngoi(khng bao gm x)
T quy tc [4]khng th tn ti node cha vnode con cng . Khi cy en vi phm quitc ny gi l hin tng xung t -
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 10
Red Black Tree (tt)
Cu trc lu tr:Thng tin lu tr ti Node (key)
a chnode gc ca cy con bn tri (* pLeft)
a chnode gc ca cy con bn phi (* pRight)
a chca node cha (* pParent)
Thuc tnh mu ca node (color)
-
8/9/2019 Bai 2 - Advanced Data Structures
6/33
6
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 11
Red Black Tree (tt)
typedef enum {BLACK, RED} NodeColor;
typedef int DataType; // Kiu d liu
typedef struct NodeTag {
DataType key; // D liu NodeColor color; // Mu ca node
struct NodeTag *pLeft;
struct NodeTag *pRight;
struct NodeTag *pParent; // d ci t} RBNode;
typedef struct RBNode* RBTREE;
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 12
Red Black Tree (tt)
Cc tnh cht:Tnh cht 1:
h: chiu cao ca cy
hb: chiu cao en
h
-
8/9/2019 Bai 2 - Advanced Data Structures
7/33
7
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 13
Red Black Tree (tt)
Cc thao tc c bn:
Tm kim & duyt cy: ging BST. Do cy Red-Blackcn bng nn chi ph duyt cy tt hn BST
Thm node mi (insert node)
Xa node (delete node)
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 14
Red Black Tree (tt)
Insert node:
Thc hin ging nh cy BST
Node mi thm lun lun c mu
Nu xy ra vi phm qui tciu chnh cy
Demo chng trnh
-
8/9/2019 Bai 2 - Advanced Data Structures
8/33
8
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 15
Red Black Tree (tt)
Insert node: (tt) nhng qui tc c th b vi phm
Mi node phi l hoc en OK
Node gc l en not OK ! Nu node mi l root
Cc node ngoi (NULL) phi lun lun en OK
Nu mt node l , nhng node con ca n phi l en notOK ! v c th parent[z] = RED 2 node lin tip mu
Mi ng dn t gc n nt l phi c cng s lng nodeen OK v khng lm thay i s node en
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 16
Red Black Tree (tt)
RB_Insert_Node(T, z) // T: cy; z: node mi
y NULL; x root[T];
while x NULL { // i n nt l
y x // y: node cha ca x
if (key[z] < key[x]) x left[x];
else x right[x];
}
parent[z] y; // thm node z vo cy
if (y == NULL) root[T] z; // l con ca node y
else if (key[z] < key[y]) left[y] z;
else right[y] z;
left[z] NULL
right[z] NULL
color[z] RED // node m i z c mu
RB_Insert_FixUp(T, z) // iu chnh cy
-
8/9/2019 Bai 2 - Advanced Data Structures
9/33
9
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 17
Red Black Tree (tt)
Cch thc iu chnh cyPhp o mu
Php xoay tri (Left-Rotation)
Php xoay phi (Right-Rotation)
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 18
Red Black Tree (tt)
Php o mu
color[parent[z]] black
color[y] black
color[parent[parent[z]]] red
z = parent[parent[z]]
z
z
y
-
8/9/2019 Bai 2 - Advanced Data Structures
10/33
10
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 19
Red Black Tree (tt)
Php xoay tri (Left-Rotation):
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 20
Red Black Tree (tt)
V d php xoay tri
-
8/9/2019 Bai 2 - Advanced Data Structures
11/33
11
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 21
Red Black Tree (tt)
RB_Left_Rotate(T, x)
y right[x];
right[x] left[y];
if (left[y] NULL) parent[left[y]] x;
parent[y] parent[x];
if (parent[x] == NULL) root[T] y;
else if (x == left[parent[x]])
left[parent[x]] y;
else right[parent[x]] y;
left[y]x;
parent[x] y;
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 22
Red Black Tree (tt)
Php xoay phi (Right-Rotation):
RB_Right_Rotate(T, x): tng t hmxoay tri (t vit)
-
8/9/2019 Bai 2 - Advanced Data Structures
12/33
12
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 23
Red Black Tree (tt)
Tng kt: c 6 trng hp x l chi titTrng hp 1: p dng php o mu
color[parent[z]] black
color[y] black
color[parent[parent[z]]] red
z = parent[parent[z]]
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 24
Red Black Tree (tt)
Tng kt: (tt)Trng hp 2: p dng php o mu v xoay phi
color[parent[z]] blackcolor[parent[parent[z]]] red
RIGHT-ROTATE(T, parent[parent[z]])
-
8/9/2019 Bai 2 - Advanced Data Structures
13/33
13
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 25
Red Black Tree (tt)
Tng kt: (tt)Trng hp 3: p dng xoay tri a v dng 2
Case 3 Case 2
z parent[z]LEFT-ROTATE(T, z)
X l nh trng hp 2
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 26
Red Black Tree (tt)
11Thm 4
2 14
1 157
85
4
y
z
11
2 14
1 157
85
4
z
Case 1
y
Case 3
11
2
14
1
15
7
8
5
4
z
y Case 2
112
141
15
7
85
4
z
-
8/9/2019 Bai 2 - Advanced Data Structures
14/33
14
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 27
Red Black Tree (tt)
Tng kt: (tt)3 trng hp tng t [1], [2], [3] i xng vi [1],[2], [3] qua trc Y
Case [1]
Case [2]
Case [3]
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 28
Red Black Tree (tt)
RB_Insert_FixUp(T, z)
while (color[parent[z]] == RED) {
// trng hp [1], [2], [3]
if (parent[z] == left[parent[parent[z]]]) {
y right[parent[parent[z]]];
if (color[y] == RED) Case 1;
else {
if (z == right[parent[z]]) Case 3;
Case 2;
}}
else // trng hp [1], [2], [3]
color[root[T]] BLACK
-
8/9/2019 Bai 2 - Advanced Data Structures
15/33
15
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 29
Red Black Tree (tt)
nh gi thao tc Insert node:
Chi ph thm phn t mi (z): O(log2N)
Chi ph ca RB_Insert_FixUp: O(log2N)
Chi ph tng cng: O(log2N)
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 30
Red Black Tree (tt)
Delete node:Cch thc xa 1 node: ging nh BSTDemo chng trnhNu node b xo c mu : khng gy ra vi phm
Mi node phi l hoc en OK
Node gc l en OK
Cc node l (NULL) phi lun lun en OK
Nu mt node l , nhng node con ca n phi l enOK v khng to ra 2 node lin tip mu
Mi ng dn t gc n nt l phi c cng s lngnode en OK v khng lm thay i s node en
-
8/9/2019 Bai 2 - Advanced Data Structures
16/33
16
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 31
Red Black Tree (tt)
Delete node: (tt)Nu node b xo c mu en: c th gy ra vi phm
Mi node phi l hoc en OK
Node gc l en not OK ! V c th xa root v thay bng node
Cc node l (NULL) phi lun lun en OK
Nu mt node l , nhng node con ca n phi l en not OK! V c th to ra 2 node lin tip mu
Mi ng dn t gc n nt l phi c cng s lng node en not OK ! V lm gim i s node en
Xem chi tit Data structure & Analysis in C, p. 465
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 32
Red Black Tree (tt)
nh gi:u im:
Chi ph tm kim O(log2N)
Insert O(log2N)
Delete O(log2N)
Minimum O(log2N)
Maximum O(log2N)
Hn ch:
Phi lu tr thuc tnh mu (color) v con trn nt cha(pParent)
Chi ph chn v xa cao hn BST v phi thc hin i muv php quay
-
8/9/2019 Bai 2 - Advanced Data Structures
17/33
17
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 33
Advanced data structures
Review
Gii thiu
Cy en (Red Black Tree)
AA Tree
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 34
AA (Arne Andersson) Tree
Minh ha
Cc khi nim
nh ngha
Cu trc lu tr
Cc thao tc c bn
nh gi
-
8/9/2019 Bai 2 - Advanced Data Structures
18/33
18
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 35
AA Tree (tt)
Minh ha cu trc cy AA
30 70
85
5
60
8010
90
15
20
50
35 40 6555
Lin kt
ngang
Lin kt
con tri
Lin kt
con phi
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 36
AA Tree (tt)
Cc khi nim:
Mc (Level) ca mt node
Lin kt ngang (Horizontal link)
Xoay phi (Right rotation Skew)
Xoay tri (Left rotation Split)
-
8/9/2019 Bai 2 - Advanced Data Structures
19/33
19
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 37
AA Tree (tt)
Cc khi nim: (tt)Mc (Level) ca mt node: l s lin kt tri t node n NULL
Mc ca node NULL l 0
Mc ca node l l 1
BA
C ED
Mc 2
Mc 1
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 38
AA Tree (tt)
Cc khi nim: (tt)Lin kt ngang (Horizontal link): l lin kt gia mtnode v node con ca node cng mt mc
BA
C ED
Node cha
Node con
cng mc
-
8/9/2019 Bai 2 - Advanced Data Structures
20/33
20
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 39
AA Tree (tt)
Cc khi nim: (tt)Xoay phi (Skew): xa b lin kt ngang bn tri
S dng iu chnh cy
X P
A B C
X P
A B C
tt1t
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 40
AA Tree (tt)
Cc khi nim: (tt)Xoay tri (Split): xo b 2 lin kt ngang lin tip bnphi
S dng iu chnh cy
X R
A B
GX
R
A B
G
t t1
t
-
8/9/2019 Bai 2 - Advanced Data Structures
21/33
21
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 41
AA Tree (tt)
Skew c th to ra nhiu lin kt ngang phi lintip s dng Split iu chnh
5 103
5 103
5
103
Split
Skew
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 42
AA Tree (tt)
nh ngha: AA tree l mt cy nh phn tmkim (BST) tun th cc quy tc sau:
Lin kt ngang lun hng v bn phi
Khng c 2 lin kt ngang lin tip nhau
Mi node c mc > 1 s c 2 node con
Nu mt node khng c lin kt ngang phi th 2node con ca n cng mc
-
8/9/2019 Bai 2 - Advanced Data Structures
22/33
22
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 43
AA Tree (tt)
30 70
85
5
60
8010
90
15
20
50
35 40 6555
Lin kt nganglun hng v
bn phiKhng c 2
lin kt ngang
lin tip
Node c
mc > 1
c 2 con
2 node con cng mc
khi node cha khng c
lin kt ngang
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 44
AA Tree (tt)
Tnh cht:Level ca node con tri lun nh hn level ca nodecha 1 n v
Level ca node con phi nh hn hay bng level canode cha (nhng khng qu 1 n v)
Thm mt node lun thc hin node c mc = 1
-
8/9/2019 Bai 2 - Advanced Data Structures
23/33
23
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 45
AA Tree (tt)
Cu trc lu tr:
typedef int DataType; // Kiu d liu
typedef struct NodeTag {
DataType key; // D liu
struct NodeTag *pLeft;
struct NodeTag *pRight;
int level; // m c ca node
} AANode;
typedef struct AANode* AATREE;
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 46
AA Tree (tt)
Cc thao tc c bn:Khi thm 1 node
Node thm vo bn tri to ra mt lin kt ngang bn tri thc hin Skew
Node thm vo bn phi nu to ra 2 lin kt ngang lintip bn phi thc hin Split
30 70
85
5
60
8010
90
15
20
50
35 40 65553 48
Skew Split
-
8/9/2019 Bai 2 - Advanced Data Structures
24/33
24
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 47
AA Tree (tt)
Cc thao tc c bn: (tt)Tm mt phn t: hon ton ging cy BST
30 70
85
5
60
8010
90
15
20
50
35 40 6555
Tm 55
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 48
AA Tree (tt)
Cc thao tc c bn: (tt)Thm mt node:
30 70
85
5
60
8010
90
15
20
50
35 40 655545
Thm 45Cn Split
-
8/9/2019 Bai 2 - Advanced Data Structures
25/33
25
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 49
AA Tree (tt)
Cc thao tc c bn: (tt)Thm mt node:
30 70
85
5
60
8010
90
15
20
50
35
40
655545
Sau khi Split ti 35
Cn Skew
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 50
AA Tree (tt)
Cc thao tc c bn: (tt)Thm mt node:
30 70
85
5
60
8010
90
15
20
50
35
40
655545
Sau khi Skew ti 50
Cn Split
-
8/9/2019 Bai 2 - Advanced Data Structures
26/33
26
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 51
AA Tree (tt)
Cc thao tc c bn: (tt)Thm mt node:
Sau khi Split ti 40
Cn Skew
Cn Split
30 70
85
5
60
8010
90
15
20
50
35
40
655545
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 52
AA Tree (tt)
Cc thao tc c bn: (tt)Thm mt node:
30 70
85
5
60
8010 90
15
20
50
35
40
655545
Sau khi Skew ti 70, v Split ti 30
STOP !
-
8/9/2019 Bai 2 - Advanced Data Structures
27/33
27
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 53
AA Tree (tt)
AATREE AA_Insert_Node(DataType x, AATREE t){
if(t == NULL) { // to node mi v thm vo cyt = new AANode;
t->key = x;
t->pLeft = t->pRight = NULL;
t->level = 1;
}
else if(x < t->key)
t->pLeft = AA_Insert_Node(x, t->pLeft);
else if(x > t->key)
t->pRight = AA_Insert_Node(x, t->pRight);
else return t; // trng khat = Skew(t);
t = Split(t);
return t;
}
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 54
AA Tree (tt)AATREE right_rotate(AATREE &t)
{
AATREE t1;
t1 = t->pLeft;
t->pLeft = t1->pRight;
t1->pRight = t;
return t1;
}
AATREE Skew(AATREE &t)
{
if (t->pLeft != NULL)if (t->pLeft->level == t->level)
t = right_rotate(t);
return t;
}
-
8/9/2019 Bai 2 - Advanced Data Structures
28/33
28
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 55
AA Tree (tt)
AATREE left_rotate(AATREE &t){
AATREE t1;
t1 = t->pRight;
t->pRight = t1->pLeft;
t1->pLeft = t;
t1->level++;
return t1;
}
AATREE Split(AATREE &t)
{
if (t->pRight !=NULL)
if (t->pRight->pRight != NULL)
if (t->pRight->pRight->level == t->level)
t = left_rotate(t);
return t;
}
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 56
AA Tree (tt)
Cc thao tc c bn: (tt)Thm mt node: VD. thm 6
10
131 113
2
4
8
5 7
12
9
6 ??
-
8/9/2019 Bai 2 - Advanced Data Structures
29/33
29
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 57
AA Tree (tt)
Cc thao tc c bn: (tt)Xa mt node:
10
131 113
2
4
8
5 7
12
9
6
Xa 1
Gim mc
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 58
AA Tree (tt)
Cc thao tc c bn: (tt)Xa mt node:
10
131132
4
8
5 7
12
9
6
Gim mc
Sau khi gim mc ti 2
-
8/9/2019 Bai 2 - Advanced Data Structures
30/33
30
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 59
AA Tree (tt)
Cc thao tc c bn: (tt)Xa mt node:
10
131132
4
8
5 7
12
9
6
Cn Skew
Sau khi gim mc ti 4 v 10
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 60
AA Tree (tt)
Cc thao tc c bn: (tt)Xa mt node:
10
131132
4
8
5 7
12
9
6
Cn Skew
Sau khi Skew ti 10, ln 1
-
8/9/2019 Bai 2 - Advanced Data Structures
31/33
31
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 61
AA Tree (tt)
Cc thao tc c bn: (tt)Xa mt node:
10
131132
4 8
5 7
12
9
6
Cn Split
Sau khi Skew ti 10, ln 2
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 62
AA Tree (tt)
Cc thao tc c bn: (tt)Xa mt node:
10
131132
4 8
5 7
12
9
6 Cn Split
Sau khi Split ti 4
-
8/9/2019 Bai 2 - Advanced Data Structures
32/33
32
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 63
AA Tree (tt)
Cc thao tc c bn: (tt)Xa mt node:
10
131132
4 8
5 7
12
9
6
Sau khi Split ti 8 STOP !
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 64
AA Tree (tt)
nh gi: phc tp O(log2N)
Khng cn lu con trn node cha (pParent)
Ci t n gin hn cy Red-Black
-
8/9/2019 Bai 2 - Advanced Data Structures
33/33
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 65
Thank youThank you
for your attentionfor your attention
Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 66
Q & AQ & A