foundation of computing systems
DESCRIPTION
Foundation of Computing Systems. Lecture 12 Trees: Part VII. Splay Tree. A binary search tree is one of the most important non-linear data structures. - PowerPoint PPT PresentationTRANSCRIPT
26.08.09 IT 60101: Lecture #12 1
Foundation of Computing Systems
Lecture 12
Trees: Part VII
26.08.09 IT 60101: Lecture #12 2
Splay Tree
• A binary search tree is one of the most important non-linear data structures.
• a variety of methods are available to keep the tree balanced and hence to guarantee that operations such as searching, insertion and deletion can be done in O(log2n) time in the worst case.
• Height-balancing by AVL-rotations (AVL trees)
• Node colouring (red-black trees)
• No doubt that these trees are efficient so far searching, insertion and deletion of a node is concerned.
• But there are some situations, when the ways of balancing may not guarantee the optimal performance.
26.08.09 IT 60101: Lecture #12 3
Splay Tree• For example, consider the binary search trees T1 and T2
• Both the trees T1 and T2 contain the same set of key elements say, k1, k2, k3, k4, k5 in their five nodes such that k1 < k2 < k3 < k4 < k5
k2
k4k1
k3 k5 k4
k1
k3
k2 k5
T1 T2
26.08.09 IT 60101: Lecture #12 4
Splay Tree
Key Number of Number of Number of accesses comparisons comparisons
in tree T1 in tree T2
k1 1 1×2 1×3k2 1 1×1 1×2k3 10 10×3 10×1k4 2 2×2 2×3k5 3 3×3 3×2
Total no. of comparisons 46 27
k2
k4k1
k3 k5 k4
k1
k3
k2 k5
T1 T2
26.08.09 IT 60101: Lecture #12 5
Splay Tree
• Definition
A splay tree is a binary search tree and it adjusts its balance dynamically providing lower access time of higher occurrence nodes.
26.08.09 IT 60101: Lecture #12 6
Splay Tree
• Operations• Searching
• Insertion
• Deletion
• Splaying
26.08.09 IT 60101: Lecture #12 7
Splaying Operation
• The basic idea of the splaying operation in a tree is that
after a node is accessed, it is pushed to the root.
– Not a simple swap operation (this may violates binary search tree property)
– Way out
• Restructuring is by a series of AVL rotations
26.08.09 IT 60101: Lecture #12 8
Splaying Operation: Bottom Up AVL Rotations
k 5
k 2
k 3
k 4
k 1
A
E
C
D
B
F
T A su b tree
k A tree n o d e
A cess p a th to k 2
(a ) A sp la y tre e a n d k 2 is b e in g a c c e sse d
k 5
k 2
k 3
k 4
k 1
A
E
C
D
B
F
(b ) T h e sp la y tre e a f te r th e ro ta tio n R 1b e tw e e n k 2 a n d k 1 ( in F ig . (a ) )
R 1
A fter ro ta tio n R 1
R 2
26.08.09 IT 60101: Lecture #12 9
Splaying Operation: Bottom Up AVL Rotations
A fte r ro ta tio n R 2
k 5
k 2
k 3
k 4
k 1
A
E
C
D
B
F
(b ) T h e sp la y tre e a f te r th e ro ta tio n R 1b e tw e e n k 2 a n d k 1 ( in F ig . (a ) )
R 2
k 5
k 2
k 3
k 4
k 1
A
E
CB
F
R 3
D
(c ) T h e sp la y tre e a fte r th e ro ta tio n R 2b e tw e e n k 2 a n d k 3 ( in F ig . (b ) )
26.08.09 IT 60101: Lecture #12 10
Splaying Operation: Bottom Up AVL Rotations
k 5
k 2
k 3
k 4
k 1
A
E
CB
F
R 3
D
(c ) T h e sp la y tr e e a f te r th e ro ta t io n R 2b e tw e e n k 2 a n d k 3 ( in F ig . (d ) )
k 5
k 2
k 3
k 4k 1
A E
C
B
F
R 4
D
(d ) T h e sp la y tre e a f te r th e ro ta tio n R 3b e tw e e n k 2 a n d k 4 ( in F ig . (c ) )
A fte r ro ta tio n R 3
26.08.09 IT 60101: Lecture #12 11
Splaying Operation: Bottom Up AVL Rotations
k 5
k 2
k 3
k 4k 1
A E
C
B
F
R 4
D
(d ) T h e sp la y tre e a f te r th e ro ta tio n R 3b e tw e e n k 2 a n d k 4 ( in F ig . (c ) ) k 5
k 2
k 3
k 4
k 1
A
E
C
B F
D
(e ) T h e sp la y tre e a fte r th e ro ta tio n R 4 b e tw e e n k 2 a n d k 5 ( in F ig . (d ) )
A fter ro ta tio n R 4
26.08.09 IT 60101: Lecture #12 12
Splaying Operation: Bottom Up AVL Rotations
k 5
k 2
k 3
k 4
k 1
A
E
C
D
B
F
T A su b tree
k A tree n o d e
A cess p a th to k 2
A sp la y tre e a n d k 2 is b e in g a c c e sse d
R 1
k 5
k 2
k 3
k 4
k 1
A
E
C
B F
D
T h e sp la y tre e a fte r th e ro ta tio n s
26.08.09 IT 60101: Lecture #12 13
Side Effect of Bottom Up AVL Rotations
• Although repeated applications of single AVL-rotation work, it possibly deteriorates the situation for the other nodes on (original) their access paths.
• As evident in the splaying operation just discussed, we see that the repeated applications of single AVL rotations have the effect of pushing k2 all the way to the root and subsequently making easy the future accessing of k2.
• Unfortunately, it has pushed up another node k1 almost as deep as k2.
• Another side effect happens to a node like k3 which was earlier closer to root now goes far away from the root
• A possible way to avoid the side effects is to follow splaying strategy of both double and single AVL-rotations, but selectively.
26.08.09 IT 60101: Lecture #12 14
Splaying Operations
p
x
T1 T 2
T 3
x
pT1
T2 T 3
Single AVL-rotation
(left-to -right)
p
XT1
T2 T 3
x
p T 3
T 2T1
Single AVL-rotation
(right-to -left)
(a) rotationZig
(b) rotationZag
26.08.09 IT 60101: Lecture #12 15
Splaying Operations
g
T4
T 3
T 2T1
x
p1
2
x
p
g
T1
T2
T 3 T4
Double left-to-left
AVL-rotation
(c) rotationZig-Zig
26.08.09 IT 60101: Lecture #12 16
Splaying Operations
Double right-to-righ t
AVL-rotation
g
p
x
T4T3
T 2
T1
1
2
x
p
g
T4
T3
T2T1
(d) rotationZag-Zag
26.08.09 IT 60101: Lecture #12 17
Splaying Operations
g
T4
T 3T 2
T1
p
x1
2
x
p g
T1 T2 T 3 T4
Double AVL ro tation
righ t-to-left andle ft-to-right rotation
(e) rotationZig-Zag
26.08.09 IT 60101: Lecture #12 18
Splaying Operations
g
T1 p
T4
T 3T2
x
2
1
x
pg
T1 T2 T 3 T4
Double AVL ro tation
le ft-to-right andrigh t-to-left rotation
(f) rotationZag-Zig
26.08.09 IT 60101: Lecture #12 19
Case 1: Zig or Zag
• Case 1: zig or zag
• If the parent of the x is the root of the tree then
• if x is the left child – perform zig
• else (i.e. x is the right child)
– perform zag
p
x
T 1 T 2
T 3
x
pT 1
T 2 T 3
S in g le A V L -ro ta tio n(le ft-to -rig h t)
Z ig ro ta tio n
p
xT 1
T 2 T 3
x
p
T 1 T 2
T 3S in g le A V L -ro ta tio n
(rig h t- to -le ft)
Zag ro ta tio n
26.08.09 IT 60101: Lecture #12 20
Case 2: Zig-Zig or Zag-Zag
• Case 2: zig-zig or zag-zag
• If x has both a parent (p) and a grandparent (g)
• If x is the left child of p and p is the left child of g
– perform zig-zig
• else (i.e. x is the right child of p and p is the right child of g)
– perform zag-zag
x
pT 1
T 2
T 4
g
p
T 1
T 3
T 4
D o u b le le ft- to -le ftA V L -ro ta tio n
Z ig -Z ig ro ta tio n
g
T 3
x
T 2
1
2
g
pT 1
T 2
T 4
x
p
T 1
T 3
T 4
D o u b le r ig h t-to -righ tA V L -ro ta tio n
Zag -Z a g ro ta tio n
x
T 3
g
T 2
1
2
26.08.09 IT 60101: Lecture #12 21
Case 3: Zig-Zag or Zag-Zig
• Case 3: zig-zag or zag-zig
• If x has both a parent (p) and a
grandparent (g)
• If x is the right child of p and p is the left child of g then
– perform zig-zag
• else (i.e. x is the left child of p and p is the right child of g)
– perform zag-zig
g
p
T 1
T 2
T 4
x
p
T 1 T 3 T 4
D o u b le A V L ro ta tio nrigh t-to -le ft an d
left-to -righ t ro ta tio n
Z ig -Z ag ro ta tio n
x
T 3
g
T 2
1
2
g
pT 1
T 2
T 4
x
p
T 1 T 3 T 4
D o u b le A V L ro ta tio nle ft- to -rig h t an d
rig h t-to -le ft ro ta tio n
Zag -Z ig ro ta tio n
x
T 3
g
T 2
1
2
26.08.09 IT 60101: Lecture #12 22
Illustration of Splaying Operation
k5
k4
k3
k1
A
B C
k2
D
E
Fzig-zag
zig-zig k5
k4
k2
k3k1
A B C D
E
F
k2
k1
k3
k4
k5A B
C D E F
(a) A splay tree wherek is being accessed2
(b) Splay tree afterthe zig-zag
(c) F inal splay tree after the zig-zig
26.08.09 IT 60101: Lecture #12 23
Illustration of Splaying Operation
32
31
30
3
2
1
(a) A skewed binary search tree with 1, 2, 3, ..., 32 numbers insertedin their descending order. This tree contains only left children
26.08.09 IT 60101: Lecture #12 24
Illustration of Splaying Operation
3 2
3 0
2 6
1
2
3
R e su lt o f sp la y in g th e tre e in a t n o d e 1 .
4
5
2 7
3 1
3 2
3 1
3 0
1
2
3
A sk e w e d b in a ry se a rc h tre e w ith
26.08.09 IT 60101: Lecture #12 25
Illustration of Splaying Operation
2 8
2 4
2 0
1
3
2
R e su lt o f sp la y in g th e tre e a t n o d e 2 .
4
6
2 7
2 6
75
2 5
3 1
3 02 9
3 2
3 2
3 0
2 6
1
2
3
A b in a ry se ra c h tre e
4
5
2 7
3 1
26.08.09 IT 60101: Lecture #12 26
Illustration of Splaying Operation h
i
g
c
d
ea
b
f
b
e
g
c
f
h
i
a
d
zig-zig
e
a g
c
b
i
h
f
d
zig-zag
e
g
c
f
d
zigi
h
a
b
26.08.09 IT 60101: Lecture #12 27
For detail implementation of splaying operation on binary search trees see the book
Classic Data StructuresChapter 7
PHI, 2nd Edn., 17th Reprint