Download as pdf or txt
Download as pdf or txt
You are on page 1of 14

Lecture 3: Splay tree

Cy tm kim nh phn t hiu chnh (splay tree) c cc tc gi


Daniel Dominic Sleator v Robert Endre Tarjan xut nm 1985
[4]. Splay tree l cy tm kim nh phn, song mi php ton trn cy
i km thao tc hiu chnh li cy (Self-Adjusting).

Splay tree c xy dng trn nguyn tc cc nt c tn sut truy cp


ln lun l nt gc hoc nt gn nt gc.

Splay tree
Splay tree l mt cy tm kim nh phn tha mn iu kin mi
nt trn cy, sau khi c truy cp, s c hiu chnh (splaying)
v gc ca cy bng mt dy cc php quay.
Cu trc d liu cho cy splay tree
typedef int KEY;
struct tree_node {
KEY key;
tree_node *right;
tree_node *left;
tree_node(KEY k){
key=k; left=right=NULL;
}
};
2

Phng phap hiu chnh (Bottom-up)


Zig(Zag)
X

Zig

B
B

(a)

Phng phap hiu chnh (Bottom-up)


Zig - Zig(Zag-Zag)
X

Zig

Zig
P

(a)

Phng phap hiu chnh (Bottom-up)


Zig - Zag(Zag-Zig)
X

Zag

Zig

P
A

A
P

X
D

(b)

Hnh 3-3. (a) Quay tri nt X quanh nt P, sau quay phi nt X quanh nt G. (b) Quay phi nt X quanh nt P,
sau quay tra nt X quanh nt G.

Tm kim
Thc hin tm kim kha k trn splay tree nh trn cy tm kim
nh phn.

Nu tm kim thnh cng th quay nt tm thy v gc, ngc li


th quay nt cui cng trn ng tm kim v gc.

Tm kim
9

T
1

T
2

2
3
T
4

T
1
T
2

T
3

T
3
5

T
4

T
5

T
8

5
T
6

T
7
(a)

T
8

T
7
T
5

T
6
(b)

Hnh 3-4. (a) Cy ban u. (b) Cy sau khi thc hin php quay tri-tri:
quay tri nt 4 quanh nt 3, sau li tip tc quay tri nt 5 quanh nt 4.

Tm kim
5

T1
7

T2
T4
7

T8

T3

T2

T1

T7
4

T8

T4

T3
T5

T6

3
T7

T5

T6

(c)

(b)

Hnh 3-4 (tip). (c) Cy sau khi thc hin php quay tri-phi: quay tri nt 5 quanh nt 2, sau li
tip tc quay phi nt 5 quanh nt 7. (d) Cy sau khi thc hin php quay phi-phi: quay phi nt 8
quanh nt 9, sau li tip tc quay phi nt 5 quanh nt 8.

Php chn
Thc hin chn mt kha k vo splay tree nh trn cy tm kim
nh phn.

Nu vic thm mi thnh cng th tin hnh quay nt va mi


thm vo v gc, ngc li th quay nt c gi tr trng vi kha
cn thm v gc.

Php xa
Thc hin xa mt kha k t splay tree nh trn cy tm kim nh
phn. Nu gi tr kha cn xa khng c trn cy th quay nt
cui cng trn ng tm kim v gc, ngc li th quay nt cn
xa v gc v thc hin cc bc sau:
Bc 1: Tch cy ban u thnh 3 cy: cy tri L, cy phi R v cy
gia ch cn li mt nt gc chnh l nt cn xa (k hiu li
delete_node).
Bc 2: Nu L rng th R chnh l cy mi
Ngc li:
Quay nt phi cng ca cy con tri v gc.
Ni cy con phi R vo con phi cng ca L.
Bc 3: Xa nt delete_node.
10

Nn d liu
S dng splay tree nn xu k t sau: aabcd, bit bng ch ci
={a,b,c,d}
Bc 1: Xy dng cy nh phn m cc ch ci l ca n.
Bc 2: c ln lt tng k t v tm kim trn cy.

11

Nn d liu Bc 1

12

Nn d liu Bc 1
aabcd
a
a

a
b

b
c

(a)

(b)

(c)

a
a

b
c
(d)

(e)

Hnh 3-. (a) c k t a, tm kim trn cy v xy dng m, c m ca a l


00, quay nt cha ca nt a v gc c cy nh hnh (b). (c) c tip c k t a,
tm kim trn cy v xy dng m, c m ca a l 0, cy khng thay i do nt
cha ca nt a ang gc. (d) c tip c k t b, tm kim trn cy v xy dng
m, c m ca b l 10, quay nt cha ca nt b v gc c cy nh hnh (e).

13

Gii nn
Nh vy dy bt nhn c sau khi nn xu aabcd l 00010101.
Gii nn
Thc hin ngc vi qu trnh nn. Gi s ta c mt bng ch ci
v mt dy bt m. gii nn, ta thc hin hai bc sau:
Bc 1: Xy dng mt cy nh phn y hoc gn y cha
tt cc ch ci ca cc nt l ca n.
Bc 2: c tng bt trong dy bt v i lin tip trn cc nhnh
tng ng trn cy vi bt 0 i xung bn tri, bt 1 i xung
bn phi, n khi gp nt l th ghi ch ci tng ng ra vn bn
gii nn, quay nt cha ca nt l v gc v tip tc c cho
n khi ht dy bt th kt thc.

14

You might also like