158
SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab.

SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

Embed Size (px)

Citation preview

Page 1: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

SNUIDB Lab.

Ch 16. Balanced Search Trees

© copyright 2006 SNU IDB Lab.

Page 2: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

2SNUIDB Lab.Data Structures

Bird’s-Eye View (0) Chapter 15: Binary Search Tree

BST and Indexed BST

Chapter 16: Balanced Search Tree AVL tree: BST + Balance B-tree: generalized AVL tree

Chapter 17: Graph

Page 3: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

3SNUIDB Lab.Data Structures

Bird’s-Eye View Balanced tree structures

- Height is O(log n) AVL

Binary Search Tree with Balance

Red-black trees

Splay trees Individual dictionary operation 0(n) Take less time to perform a sequence of u operations 0(u log u)

B-trees (Balanced Tree) Suitable for external memory

Page 4: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

4SNUIDB Lab.Data Structures

Table of Contents

AVL TREES

Definition Searching an AVL Search Tree Inserting into an AVL Search Tree Deletion from an AVL Search Tree

RED-BLACK TREES

SPLAY TREES

B-TREES

Page 5: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

5SNUIDB Lab.Data Structures

The History of Balanced Trees

Adel'son-Vel'skiĭ and Landis introduced AVL tree in 1962

Ensures balance by restricting every node's depth to differ at most by 1

Bayer and McCreight introduced B-tree in 1972

Kept balanced by requiring that all leaf nodes are at the same depth

Join or split is needed instead of re-balancing

Bayer, Guibas and Sedgewick introduced Red-black tree in 1978

Ensures balance by restricting the occurrence of red nodes in the tree

Sleator and Tarjan introduced Splay tree in 1983

Maintains balance without any explicit balance condition such as color

Splay operations are performed within the tree every time an access is

made

Page 6: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

6SNUIDB Lab.Data Structures

AVL TREES Balanced tree

Trees with a worst-case height of O(log n) AVL search tree

Balanced binary search trees Can be generalized to a B-tree

A height-balanced k tree (HB(k) tree) Allowable height difference of any two sub-trees is k

AVL Tree : HB(1) Tree G.M. Adel’son, Vel’skii, E.M. Landis Performance

Given N keys, worst-case search 1.44 log2(N+2)

cf. Completely balanced AVL tree : worst-case search log2(N+1)

Page 7: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

7SNUIDB Lab.Data Structures

Height of an AVL Tree n : nodes in AVL tree Nh : min number of nodes in an AVL tree of height h Nh = Nh-1 + Nh-2 + 1, N0 = 0, and N1 = 1

Similar in definition to Fibonacci numbers Fh = Fn-1 + Fn-2., F0 = 0 and F1 = 1

It can be shown that Nh = Fh+2 - 1 for h > 0 Fibonacci theory: Fh ≒ Øh/√5 where Ø = (1 + √5)/2 therefore Nh ≒ Øh+2/√5-1 If there are n nodes then its height h = logØ(√5(n+1)) - 2

≒ 1.44log2(n+2) h = O(log n)

Page 8: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

8SNUIDB Lab.Data Structures

AVL Tree Definition An empty binary tree is an AVL Tree

If T is a nonempty binary tree with TL and TR as its left and right subtrees, then T is an AVL tree iff

(1) TL and TR are AVL Trees and

(2) | hL - hR| ≤ 1 where hL and hR are the heights of TL and TR, respectively

For any node in tree T in AVL tree, BF(T) should be one of “ -1, 0, 1” If BF(T) is -2 or 2, then proper rotation is performed in order to get

balance

Conceptually AVL search tree = AVL tree + Binary Search Tree

Page 9: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

9SNUIDB Lab.Data Structures

AVL Tree Examples

(a) AVL Trees

X X

X X

(b) Non - AVL Trees

Page 10: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

10SNUIDB Lab.Data Structures

Intuition: AVL Search Tree AVL Search Tree = Binary Search Tree + AVL

Tree = Balanced Binary Search Tree20

12 18

15 25

22

30

405

2

60

70

8065

( a ) ( b ) ( c )

BST X O O

AVL O O X

AVL ST X O X

Page 11: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

11SNUIDB Lab.Data Structures

Indexed AVL Search Tree

Indexed AVL search Tree= AVL Tree + LeftSize variable

= (Balanced + Binary Search Tree) + LeftSize variable

MAY

AUG

APR

NOV

MAR

3

1

1

0

1

Page 12: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

12SNUIDB Lab.Data Structures

Representation of an AVL Tree

Balance factor bf(x) of a node x = height of left subtree – height of right subtree

Permissible balance factors: (-1, 0, 1)

30

35

5 40

20

12 18

15 25

30

-1

0 1

0

0

0

0 0 0

-1

Page 13: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

13SNUIDB Lab.Data Structures

AVL Search Tree Example (1)

New Identifier

MARCH

After Insertion No Rebalancing needed

0MAR

New Identifier

MAY

After Insertion No Rebalancing needed

New Identifier

NOVEMBER

After Insertion After Rebalancing

-1MAR

0MAY

-2MAR

-1MAY

0NOV

0MAY

0MAR

0NOV

RR

Page 14: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

14SNUIDB Lab.Data Structures

AVL Search Tree Example (2)

New Identifier

AUGUST

After Insertion No Rebalancing needed

+1MAY

+1MAR

0AUG

0NOV

Page 15: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

15SNUIDB Lab.Data Structures

AVL Search Tree Example (3)

New Identifier

APRIL

After Insertion After Rebalancing

+2MAY

+2MAR

+1AUG

0NOV

0APR

+1MAY

0AUG

0APR

0NOV

0MAR

LL

Page 16: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

16SNUIDB Lab.Data Structures

AVL Search Tree Example (4)

+2MAY

-1AUG

0APR

0NOV

+1MAR

New Identifier

JANUARY

After Insertion After Rebalancing

0JAN

0MAR

0AUG

-1MAY

0JAN

0NOV

0APR

LR

Page 17: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

17SNUIDB Lab.Data Structures

AVL Search Tree Example (5)

New Identifier

DECEMBER

After Insertion No Rebalancing needed

+1MAR

-1AUG

-1MAY

+1JAN

0NOV

0APR

0DEC

Page 18: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

18SNUIDB Lab.Data Structures

AVL Search Tree Example (6)

New Identifier

JULY

After Insertion No Rebalancing needed

+1MAR

-1AUG

-1MAY

0JAN

0NOV

0APR

0DEC

0JUL

Page 19: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

19SNUIDB Lab.Data Structures

AVL Search Tree Example (7)

New Identifier

FEBRUARY

After Insertion After Rebalancing

+2MAR

-2AUG

-1MAY

+1JAN

0NOV

0APR

-1DEC

0JUL

0FEB

+1MAR

0DEC

-1MAY

0JAN

+1AUG

0NOV

0APR

0FEB

0JUL

RL

Page 20: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

20SNUIDB Lab.Data Structures

AVL Search Tree Example (8)

New Identifier

JUNE

After Insertion After Rebalancing

+2MAR

-1DEC

-1MAY

-1JAN

+1AUG

0NOV

0APR

0FEB

-1JUL

0JUN

0JAN

+1DEC

0MAR

0FEB

+1AUG

0APR

-1MAY

-1JUL

0JUN

-1NOV

LR

Page 21: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

21SNUIDB Lab.Data Structures

AVL Search Tree Example (9)

-1JAN

+1DEC

-1MAR

0FEB

+1AUG

0APR

-2MAY

-1JUL

0JUN

-1NOV

New Identifier

OCTOBER

After Insertion

0OCT

After Rebalancing

RR

0JAN

+1DEC

0MAR

0FEB

+1AUG

0APR

0NOV

-1JUL

0JUN

0OCT

0MAY

Page 22: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

22SNUIDB Lab.Data Structures

AVL Search Tree Example (11)

New Identifier

SEPTEMBER

After Insertion No Rebalancing needed

-1JAN

+1DEC

-1MAR

0FEB

+1AUG

0APR

-1NOV

-1JUL

0JUN

-1OCT0

MAY

0SEP

Page 23: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

23SNUIDB Lab.Data Structures

Table of Contents AVL TREES

Definition Searching an AVL Search Tree Inserting into an AVL Search Tree Deletion from an AVL Search Tree

RED-BLACK TREES

SPLAY TREES

B-TREES

Page 24: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

24SNUIDB Lab.Data Structures

Searching in an AVL Search Tree

search in binary search tree : Wish to Search for thekey from root to leaf

If (root == null) search is unsuccessful;else if (thekey < key in root) only left subtree is to be searched;else if (thekey > key in root) only right subtree is to be searched;

else (thekey == key in root) search terminates successfully;

Subtrees may be searched similarly in a recursive manner

TimeComplexity = O(height)

Height of an AVL tree with n element O(log n): search time is O(log n)

Page 25: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

25SNUIDB Lab.Data Structures

Table of Contents AVL TREES

Definition Searching an AVL Search Tree Inserting into an AVL Search Tree Deletion from an AVL Search Tree

RED-BLACK TREES

SPLAY TREES

B-TREES

Page 26: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

26SNUIDB Lab.Data Structures

Unbalance due to Inserting

When an insertion into an AVL Tree using the strategy of Program15.5 (insert in BST), the resulting tree is unbalanced

New element

30

35

5 40

-1

0 1

0

Page 27: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

27SNUIDB Lab.Data Structures

Observations on Imbalance due to Insertion

O1: In the unbalanced tree the BFs are limited to –2, -1, 0, 1, 2

O2: A node with BF “2” had a BF “1” before the insertion

O3: The BF of only those nodes on the path from the root to the newly inserted node can change as a result of the insertion

O4: Let A denote the nearest ancestor of the newly inserted node whose BF is either –2 or 2. The BF of all nodes on the path from A to the newly inserted node was 0 prior to the insertion

O5: Imbalance can happen in the last node encountered that has a balance factor 1 or –1 prior to the insertion

Page 28: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

28SNUIDB Lab.Data Structures

Node X with Potential Imbalance (1)

Let X denote the last node encountered that has a balance factor 1 or –1 prior to the insertion

If the tree is unbalanced following the insertion, X exists If bf(x) = 0 after the insertion, then the height of the subtree with

root X is the same before and after the insertion

0

30

35

5 40

-1

1

0

20

12 18

15 25

30

0

0

0 0 0

-1

20

12 18

15 25

30

0

0

0 0 0

-1

32

22

28 50 10 14 16 19

XX

No node X

Page 29: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

29SNUIDB Lab.Data Structures

( a ) ( b ) ( c )

height h h h + 1

bf(x) 1 0 2balance

dbalanced balanced imbalanced

The only way the tree can become unbalanced is when the insertion causes bf(x) to change from –1 to –2 or from 1 to 2.

Node X with Potential Imbalance (2)

Page 30: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

30SNUIDB Lab.Data Structures

Imbalance Patterns due to Insertion

The imbalance at A is one of the types LL (when new node is in the left subtree of the left subtree of A) LR (when new node is in the right subtree of the left subtree of A) RR (when new node is in the right subtree of the right subtree of A) RL (when new node is in the left subtree of the right subtree of A)

LL and RR imbalances require single rotation LR and RL imbalances require double rotations

A

Insert YLL LR RL RR

Page 31: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

31SNUIDB Lab.Data Structures

LL Rebalancing after Insertion

+1A

0B

BLBR

AR

h

h+2

+2A

0B

BLBR

AR

0B

0A

BRAR

BL

rotation typerotation typeLLLL

h+2

Balanced SubtreeUnbalanced following

insertion

Height of BL increase to h+1(BL < B < BR < A < AR)

Balanced Subtree

Page 32: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

32SNUIDB Lab.Data Structures

RR RR Rebalancing Rebalancing after Insertion

-1A

0B

BLBR

AL

0B

0A

AlBL

BR

rotation typerotation typeRRRR

h+2

Balanced SubtreeUnbalanced following

insertion

Height of BR increase to h+1(AL < A < BL < B < BR)

h+2

-2A

0B

BLBR

AL

Balanced Subtree

Page 33: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

33SNUIDB Lab.Data Structures

LR-a Rebalancing after Insertion

+1A

0B

Balanced Subtree Unbalanced followinginsertion

+1A

-1B

0C

Balanced Subtree

0C

0B

0A

rotation typerotation typeLR(a)LR(a)

(B < C < A)

Page 34: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

34SNUIDB Lab.Data Structures

LR-b LR-b Rebalancing Rebalancing after Insertion

Balanced SubtreeUnbalanced following

insertionBalanced Subtree

+1A

BL

0B

0C

CLCR

h

h-1

AR h+2

+2A

BL

-1B

+1C

CLCR

AR

0C

0B

-1A

BL CL CR AR

rotation typerotation typeLR(b)LR(b)

h

h+2

h

(BL < B < CL < C < CR < A < AR)

Page 35: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

35SNUIDB Lab.Data Structures

LR-c LR-c Rebalancing Rebalancing after Insertion

Balanced SubtreeUnbalanced following

insertionBalanced Subtree

+1A

BL

0B

0C

CLCR

h

h-1

AR h+2

+2A

BL

-1B

-1C

CLCR

AR

0C

+1B

0A

BL CL CR AR

rotation typerotation typeLR(c)LR(c)

h+2

RL a, b and c are symmetric to LR a, b and c

h

Page 36: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

36SNUIDB Lab.Data Structures

Table of Contents AVL TREES

Definition Searching an AVL Search Tree Inserting into an AVL Search Tree Deletion from an AVL Search Tree

RED-BLACK TREES

SPLAY TREES

B-TREES

Page 37: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

37SNUIDB Lab.Data Structures

Deletion from an AVL Tree Let q be the parent of the node that was physically deleted

If the deletion took place from the left subtree of q bf(q) decreases by 1 the right subtree of q bf(q) increases by 1

Observations

D1 : If the new BF of q is 0, its height has decreased by 1.we need to change the BF of its parent (if any) and possibly those of its other ancestors

D2 : If the new BF of q is either –1 or 1, its height is the same as before the deletion and the BFs of tis ancestors and unchanged

D3 : If the new BF of q is either –2 or 2, the tree is unbalanced at q

Page 38: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

38SNUIDB Lab.Data Structures

Imbalance Patterns due to Deletion

Type L If the deletion took place from A’s left subtree with root B Subclassified : L-1, L0 and L1 depending on bf(B)

Type R If the deletion took place from A’s right subtree with root B Subclassified : R-1, R0 and R1 depending on bf(B)

Page 39: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

39SNUIDB Lab.Data Structures

R0 rotation after Deletion Height of tree is h+2 (h+2) before (after) deletion Single rotation is sufficient BL < B < BR < A < AR

Page 40: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

40SNUIDB Lab.Data Structures

R1 rotation after Deletion Height of tree is h+2 (h+1) before (after) deletion Single rotation is sufficient BL < B < BR < A < AR

Page 41: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

41SNUIDB Lab.Data Structures

R-1 rotation after Deletion Height of tree is h+2 (h + 1) before (after) deletion Double rotations BL < B < CL < C < CR < A < AR

Page 42: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

42SNUIDB Lab.Data Structures

Rotation Taxonomy in AVL Rotation types due to Insertion

LL type RR type LR type: LR-a, LR-b, LR-c RL type: RL-a, RL-b, LR-c

Rotation types due to Deletion R type: R-1, R0, R1 L type: L-1, L0, L1

LL rotation in insertion and R1 rotation in deletion are identical LR rotation in insertion and R-1 rotation in deletion are

identical LL rotation in insertion and R0 rotation in deletion differ only in

the final BF of A and B

Page 43: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

43SNUIDB Lab.Data Structures

Table of Contents AVL TREES

RED-BLACK TREES Definition Searching a Red-Black Tree Inserting into a Red-Black Tree Deletion from a Red-Black Tree Implementation Considerations and Complexity

SPLAY TREES

B-TREES

Page 44: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

44SNUIDB Lab.Data Structures

Red-Black Tree vs. AVL Tree (1)

less balanced more balanced

Red-Black tree AVL tree

Lookup O(logn) O(logn)

Insertion O(logn) O(logn)

Deletion O(logn) O(logn)

Page 45: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

45SNUIDB Lab.Data Structures

Red-Black Tree vs. AVL Tree (2)

insert a node x

x x

Red-black tree doesn't need rebalancing AVL tree needs rebalancing

Page 46: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

46SNUIDB Lab.Data Structures

Red-Black Tree: Definition Red-black tree

Binary Search tree Every node is colored red or blackRB1. Root and all external nodes are black.RB2. No root-to-external-node path has two consecutive red nodes.RB3. All root-to-external-node paths have the same number of

black nodes

RB1’. Pointers from an internal node to an external node are blackRB2’. No root-to-external-node path has two consecutive red

pointersRB3’. All root-to-external-node paths have the same number of

black pointers

≡equivalent

Page 47: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

47SNUIDB Lab.Data Structures

Red-Black Tree: Example

Every path from the root to an external node has exactly 2 black pointers and 3 black nodes

No such path has two consecutive red nodes or pointers Small black box nodes are for ensuring every node has two

children The color of newly inserted node is red

65

10 60

50 80

70

5 62

Page 48: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

48SNUIDB Lab.Data Structures

RBT: Glossary Rank: number of black pointers on any path from the node to

any external node in red-black tree Length (of a root-to-external-node path): number of pointers

on the path.

• rank = 1• height = length = 2

Page 49: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

49SNUIDB Lab.Data Structures

RBT: Lemma 1 Lemma 1

If P and Q are two root-to-external-node paths in a red-black tree, Then length(P) ≤ 2 * length(Q)

Proof Suppose that the rank of the root is r From RB1’ and RB2’, each root-to-

external-node path has between r and 2r pointers

So length(P) ≤ 2length(Q)

length(P)=4

length(Q)=2

Page 50: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

50SNUIDB Lab.Data Structures

RBT: Lemma 2 Lemma 2

h : height of a red-black tree n : number of internal nodes r : rank of the root

h=4n=5r=2

(a) h ≤ 2r From Lemma 16.1, no root-to-external-node path has length > 2r

(b) n ≥ 2r – 1 No external nodes at levels 1 through r so 2r – 1 internal nodes at

these levels (c) h ≤ 2log2(n+1)

2r ≤ n + 1 from (b) r ≤ log2(n+1) f ≤ 2r ≤ 2log2(n+1)

Page 51: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

51SNUIDB Lab.Data Structures

RBT: Representation Null pointers represent external nodes Pointer and node colors are closely related Each node we need to store only

its color ( one additional bit per node ) or the color of the two pointers to its children(two additional bit per node)

→ null pointer

→ R / B

or

→ {R / B, R / B}

Page 52: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

52SNUIDB Lab.Data Structures

Table of Contents AVL Tree RED-BLACK TREES

Definition Searching a Red-Black Tree Inserting into a Red-Black Tree Deletion from a Red-Black Tree Implementation

Splay Tree B Tree

Page 53: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

53SNUIDB Lab.Data Structures

Searching a Red-Black Tree

Use the same code to search ordinary binary search tree (Program 15.4), AVL tree, red-black trees

if(root == null) {search is unsuccessful

} else {if ( thekey < key in root)

only left subtree is to be searched} else {

if(thekey > key in root) only right subtree is to be searchedelse (thekey == key in root) search terminates successfully

}}

Page 54: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

54SNUIDB Lab.Data Structures

Table of Contents AVL Tree RED-BLACK TREES

Definition Searching a Red-Black Tree Inserting into a Red-Black Tree Deletion from a Red-Black Tree Implementation

Splay Tree B Tree

Page 55: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

55SNUIDB Lab.Data Structures

Violations due to Insertion (1) The RBT should have the same number of black nodes in all

paths If new node is colored as black

The updated tree will always violate RB3 (same number of black nodes)

3

2 4

3

2 4

1

r=3

r=2insert 1

Page 56: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

56SNUIDB Lab.Data Structures

Violations due to Insertion (2) If new node is colored as red

If the parent of inserted node is black, it's OK (no violation).

But if the parent of inserted node is also red, violation occurs!

Violate RB2 (no two consecutive reds)

3

2

3

2

1RB2 v

iola

tion!

insert 1

Page 57: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

57SNUIDB Lab.Data Structures

L Type Imbalances due to Insertion (1)

u be the inserted node (red)

uL & uR

pu be the parent of u (red)

puL & puR

gu be the granparent of u

guL & guR

LLr & LRr The color of guR is red

Page 58: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

58SNUIDB Lab.Data Structures

L Type Imbalances due to Insertion (2)

u be the inserted node (red)

uL & uR

pu be the parent of u (red) puL & puR

gu be the granparent of u guL & guR

LLb & LRb The color of guR is black

U

U

Page 59: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

59SNUIDB Lab.Data Structures

Fixing LLr and LRr Imbalance

Begin change the color of pu & guR : red black

if (gu != root) { change the color of gu : black red } else { the color change not done.

the number of black nodes increases by 1. (on all root-to-external-node paths) }

if (the color change of gu causes imbalance) gu became the new u node

if (gu != root && the color change causes imbalance) continue to rebalance End

Page 60: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

60SNUIDB Lab.Data Structures

Fixing LLr Imbalance

A

C

B

LLr imbalance After LLr color change

D E

F

G

u

If a node (which is red) u is left child of its parent (also red) and its parent is left child of its grandparent & its uncle is red,then change its grandparent's color to red & change its parent's and uncle's color to black

B

C

A

D E

F

G

u

Page 61: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

61SNUIDB Lab.Data Structures

Fixing LRr Imbalance

A

B

LRr imbalanceAfter LRr color change

C

If a node (which is red) u is right child of its parent (also red) and its parent is left child of its grandparent & its uncle is red,then change its grandparent's color to red & change its parent's and uncle's color to black

D

E F

u

G

A

C D

E F

u

B G

Page 62: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

62SNUIDB Lab.Data Structures

Fixing LLb and LRb Imbalance

Rotation first & then Change the color The root of the involved subtree is black following the rotation Number of black nodes on all root-to-external-node paths is

unchanged

LLb rotation in RB tree is similar to LL rotation in AVL tree LRb rotation in RB tree is similar to LR rotation in AVL tree

Page 63: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

63SNUIDB Lab.Data Structures

Fixing LLb Imbalance

LLb imbalance

A

C

B

Du

E

After LLb rotation

B

C

E

u A

D

If a node (which is red) u is left child of its parent(also red) and its parent is left child of its grandparent & its uncle is black,then do rotation and color change like the following

Page 64: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

64SNUIDB Lab.Data Structures

Fixing LRb Imbalance

LRb imbalance After LRb rotation

D

G

u

A

F

If a node (which is red) u is right child of its parent (also red) and its parent is left child of its grandparent & its uncle is black,then do rotation and color change like the following

A

B

C D

E F

u

G

E

B

C

Page 65: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

65SNUIDB Lab.Data Structures

Insertion Example in RBT (1)

50

10 80

90

(a) Initial state:

all root-to-external-node paths have 3 black nodes & 2 black pointers

50

10 80

70 90

(b) insert 70 as a red node:

No violations of RBT No remedial action is necessary

Page 66: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

66SNUIDB Lab.Data Structures

Insertion Example in RBT (2)

50

10 80

70 90

60

pu

u

gu

(c) insert 60 as a red node LLr imbalance

50

10 80

70 90

60

pu

u

(d) LLr color change on nodes 70, 80 & 90;

gu is null, so not RB2 imbalance

u

Page 67: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

67SNUIDB Lab.Data Structures

Insertion Example in RBT (3)

50

10 80

70 90

60

65

gu

pu

u

(e) Insertion 65 as a red node LRb imbalance

50

10 80

65 90

60 70(f) Perform LRb rotation

Page 68: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

68SNUIDB Lab.Data Structures

Insertion Example in RBT (4)

50

10 80

65 90

60 70

62

gu

pu

u

(g) Insertion 62 as a red node LRr imbalance

50

10 80

65 90

60 70

62

gu

pu

u

(h) LRr color change on nodes 65, 60 & 70 RLb imbalance

Page 69: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

69SNUIDB Lab.Data Structures

Insertion Example in RBT (5)

65

10 60

50 80

70

62

90

(i) Perform RLb rotation

50

10 80

65 90

60 70

62

gu

pu

u

RLb imbalance

Page 70: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

70SNUIDB Lab.Data Structures

Table of Contents AVL Tree RED-BLACK TREES

Definition Searching a Red-Black Tree Inserting into a Red-Black Tree Deletion from a Red-Black Tree Implementation

Splay Tree B Tree

Page 71: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

71SNUIDB Lab.Data Structures

Violations due to Deletion (1) If the parent of deleted node is red, RB2 violation occurs!

4

3

2

1

delete 2

...

4

3

1

...

RB2 v

iola

tion!

Page 72: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

72SNUIDB Lab.Data Structures

Violations due to Deletion (2) If the deleted node is black, RB3 violation occurs!

delete 23

2 4

3

4

r=1

r=2

Page 73: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

73SNUIDB Lab.Data Structures

Deletion & Imbalance in RBT (1)

(b) Delete 70 Deleted node was red Same number of black nodes before and

after the rotation This is OK

65

10 60

50

70

62

90(a) A Red-Black tree

65

10 60

50

62

90

Page 74: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

74SNUIDB Lab.Data Structures

Deletion & Imbalance in RBT (2)

(c) Delete 90 The red node 70 takes the place of the deleted

node which was black Then, the number of black nodes on path

from root-to-external node in y is 1 less than before RB3 violation occurs = imbalance

Change the color of y to Black

65

10 60

50

70

62

90

65

10 60

50 70

62

y

(a) A Red-Black tree

Page 75: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

75SNUIDB Lab.Data Structures

Deletion & Imbalance in RBT (3)

(d) Delete 65 Deleted node was black and the node 62

was red, so change to black

** An RB3 violation occurs

only when the deleted node was black

and y is not the root of the resulting tree.

65

10 60

50

70

62

90

10 60

50

70

6290

(a) A Red-Black tree

Page 76: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

76SNUIDB Lab.Data Structures

Rb Imbalance due to Deletion Rb0 => color change Rb1 => handled by rotation Rb2 => handled by rotation

(y is the node that takes the place of removed node)

number of y’s nephewy's sibling is black

y is the right child of its parent

Page 77: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

77SNUIDB Lab.Data Structures

Deletion Imbalances:

Rb family

y: the node that takes the place of removed node

py: parent of y

v: sibling of y

vL & vR: children of v

Page 78: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

78SNUIDB Lab.Data Structures

Fixing Rb0 Imbalance

Rb0 imbalance

A

D

yE

After Rb0 color change

B

C

A

D

yEB

C

If a node (which is black) y is right child of its parent and its sibling is black & its sibling has 0 red child,then change its sibling's color to red

Page 79: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

79SNUIDB Lab.Data Structures

Fixing Rb1 Imbalance

Rb1 imbalance

A

D

yG

After Rb1 rotation

B

C

If a node(which is black) y is right child of its parent and its sibling is black & its sibling has 1 red child,then do rotation and color change like the following

C is red

D is redFE

B

D y

AC

G

FE

D

F y

AB

GC E

red / black

Page 80: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

80SNUIDB Lab.Data Structures

Fixing Rb2 Imbalance

Rb2 imbalance

A

D

yG

After Rb2 rotation

B

C

FE

D

F y

AB

GC E

If a node(which is black) y is right child of its parent and its sibling is black & its sibling has 2 red children,then do rotation and color change like the following

Page 81: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

81SNUIDB Lab.Data Structures

Rr Imbalance due to Deletion Rr0 Rr1 handled by rotation Rr2

number of red child that v’s right child has(v is sibling of y)

(y is the node that takes the place of removed node)

y's sibling is redy is the right child of its parent

Page 82: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

82SNUIDB Lab.Data Structures

Deletion Imbalances:

Rr family

y: the node that takes the place of removed node

py: parent of y

v: sibling of y

vL & vR: children of v

Page 83: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

83SNUIDB Lab.Data Structures

Fixing Rr0 Imbalance

Rr0 imbalance

A

D

yE

After Rr0 rotation

B

C

B

E y

A

D

C

If a node(which is black) y is right child of its parent and its sibling is red & its nephew has 0 red child,then do rotation and color change like the following

Page 84: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

84SNUIDB Lab.Data Structures

Fixing Rr1 Imbalance

Rr1 imbalance

A

D

yI

After Rr1 rotation

B

C

If a node(which is black) y is right child of its parent and its sibling is red & its nephew has 1 red child,then do rotation and color change like the following

E is red

F is redFE

F

H y

AB

IC Dred / black HG

D

F y

AB

IC E

HG

GE

Page 85: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

85SNUIDB Lab.Data Structures

Fixing Rr2 Imbalance

Rr2 imbalance After Rr2 rotation

If a node(which is black) y is right child of its parent and its sibling is red & its nephew has 2 red children,then do rotation and color change like the following

F

H y

AB

IC D

GE

A

D

yIB

C

FE

HG

Page 86: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

86SNUIDB Lab.Data Structures

Deletion Example (1)

(a) 90 deleted Not root & black Imbalance Rb0

65

10 60

50 80

70

62

90

65

10 60

50 80

70

62

py

v

vR

y

Page 87: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

87SNUIDB Lab.Data Structures

Deletion Example (2)

( C) delete 80 Black node “80” was

deleted So tree remains balanced

(b) Rb0 color change py was red before delete Rb0 color change of 70 &

80 we are done

65

10 60

50 80

70

62

py

v

vR65

10 60

50 70

62

Page 88: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

88SNUIDB Lab.Data Structures

Deletion Example (3)

(d) delete 70 Nonroot black node was

deleted Tree is imbalance Rr1(ii)

(e) after Rr1(ii) Rotation This tree is now balanced!

65

10 60

50 70

62

65

10 60

50

62

py

v

v w

x

62

10 60

50 65

v

Page 89: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

89SNUIDB Lab.Data Structures

Rotation Taxonomy in RBT Rotation types due to Insertion

L family LLr type LRr type LLb type LRb type

R family RRr type RLr type RRb type RLb type

Rotation types due to Deletion Rb family

Rb0 Rb1(i) Rb1(ii) Rb2 Rr family

Rr0 Rr1(i) Rr1(ii) Rr2 Lb family

Lb0 Lb1(i) Lb1(ii) Lb2 Lr family

Lr0 Lr1(i) Lr1(ii) Lr2

Page 90: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

90SNUIDB Lab.Data Structures

Table of Contents

AVL Tree RED-BLACK TREES

Definition Searching a Red-Black Tree Inserting into a Red-Black Tree Deletion from a Red-Black Tree Implementation

Splay Tree B Tree

Page 91: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

91SNUIDB Lab.Data Structures

Implementation Considerations

Insertion / Deletion require backward movement If use red-black-tree nodes Backward movement is easy

else Backward movement is complex //use stack instance of color fields..etc

Complexity For an n-element red-black tree

parent-pointer scheme runs slightly faster than tack scheme Color change : O(log n) // propagate back toward the root Rotation : O(1) Each color change or ratation : Θ(1) Total insert/delete O(log n)

Page 92: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

92SNUIDB Lab.Data Structures

Table of Contents

AVL TREES

RED-BLACK TREES

SPLAY TREES

B-TREES

Page 93: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

93SNUIDB Lab.Data Structures

Splay Tree Splay tree is a binary search tree whose nodes are rearranged by

splay operation whenever search, insertion, or deletion occurs The recently accessed node is moved to the top

Self-Balancing by Splay operation

Properties of splay tree Recently accessed elements are quick to access again

Basic operations run in O(log n) amortized time It is simpler to implement splay trees than red-black trees or AVL trees Splay trees don't need to store any extra data in nodes

Page 94: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

94SNUIDB Lab.Data Structures

The Splay Operation We call recently accessed(searched, inserted, or deleted) node as splay

node Splay operation is performed on splay node to move it to the root We can perform successive accesses faster because recently accessed node is

moved to the top of the treeg

Dp

A x

B C

x

p

A B C D

g

splay node

Splay operation comprises sequence of the following splay steps. If (Splay node = root) then sequence of steps is empty Else splay step moves the splay node either 1 level or 2 levels up the tree

Page 95: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

95SNUIDB Lab.Data Structures

Splay Node Search(x) makes the node x as a splay node Insert(x) makes the node x as a splay node Delete(x) makes the parent node of x as a splay node

5

62

1 4

5

62

1 4

5

62

1 4

5

62

1

3Search(4)

Insert(3)

Delete(4)

splay node

splay node

splay node

Page 96: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

96SNUIDB Lab.Data Structures

One Level Splay Step When the level of splay node = 2 (Only)

L splay step : splay node is Left child of its parent R splay step : splay node is Right child of its parent

L splay step If splay node q is the left child of its parent, then do rotation like the

following Notice that following the splay step the splay node becomes the

root of binary search tree

root root

Page 97: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

97SNUIDB Lab.Data Structures

Two Level Splay Step When the level of splay node > 2 Types

LL : p is Left child of gp, q is Left child of p LR : p is Left child of gp, q is Right child of p RR : p is Right child of gp, q is Right child of p RL : p is Right child of gp, q is Left child of p

LL LR RL RR

Page 98: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

98SNUIDB Lab.Data Structures

LL Splay Step If splay node q is the left child of its parent & its parent is the left child of its grandparent, then do rotation like the following The splay node is moved 2 level up

Page 99: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

99SNUIDB Lab.Data Structures

LR Splay Step If splay node q is the right child of its parent & its parent is the left child of its grandparent, then do rotation like the following The splay node is moved 2 level up

Page 100: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

100SNUIDB Lab.Data Structures

Sample Splay Operation

Search “2”

Page 101: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

101SNUIDB Lab.Data Structures

Rotation Taxonomy of Splay Tree

1 level splay step L type R type

2 level splay step LL type LR type RL type RR type

Page 102: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

102SNUIDB Lab.Data Structures

Concept of Amortized Rule: Spend less than 100$ per month

Normal spending – Spend less than 100$ per month Amortized spending – Spend less than (100 * 12)$ per year

Remember array expansion Regular complexity

Double the size (initialize) -- O(n) Copy the old array to the new array – O(n)

Amortized complexity Doubling will happen after n insertions! One insertion is responsible for one slot expansion O(1)

Page 103: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

103SNUIDB Lab.Data Structures

Amortized Complexity (1) In an amortized analysis, the time required to perform a

sequence of data-structure operations is averaged over all the operations performed

Amortized analysis differs from average-case analysis Amortized analysis guarantees the average performance of

each operation in the worst case

Theorem 16.1 The amortized complexity of a get, put or remove operation

performed on a splay tree with n element is O(log n) Actual Complexity of any sequence of g get, p put and r

remove operations O((g+p+r)log n)

n

i

n

i

iactualiamortized11

)()(

Page 104: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

104SNUIDB Lab.Data Structures

Amortized Complexity (2) Example (1)

splay

7

6

5

4

1

2

3

7

6

5

2

1

3

4

splay

7

2

5

6

1

3

4splay

7

2

5

6

1

3

4LR LL L

7

6

5

4

1

2

3

search(2)

T1 = (search time)+(splay time)= 6 comparisons + 5 rotations

Page 105: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

105SNUIDB Lab.Data Structures

Amortized Complexity (3) Example (2)

splayL

7

2

5

6

1

3

4

7

2

5

6

1

3

4

search(1)

7

2

5

6

3

4

1

T2 = (search time) + (splay time) = 2 comparisons + 1 rotation

Page 106: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

106SNUIDB Lab.Data Structures

Amortized Complexity (4) Example (3)

splayR

7

2

5

6

1

3

4

search(2)

T3 = (search time) + (splay time) = 2 comparisons + 1 rotations

7

2

5

6

3

4

1

7

2

5

6

3

4

1

Page 107: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

107SNUIDB Lab.Data Structures

Amortized Complexity (5) Example (4)

In the previous example, total time taken is 10 comparisons + 7 rotations

If there were no splay operation, total time taken would be 18 comparisons

Generally, it is known that (t1+t2+…+tk) / k ≤ 3*log2n, where n is the number of nodes if k is large enough

7

6

5

4

1

2

3

7

6

5

4

1

2

3

search(2)

7

6

5

4

1

2

3

search(1)

7

6

5

4

1

2

3

search(2)

Page 108: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

108SNUIDB Lab.Data Structures

Table of Contents AVL TREES RED-BLACK TREES SPLAY TREES

B-TREES Indexed Sequential Files (ISAM) m-WAY Search Trees B-Trees of Order m Height of a B-Tree Searching a B-Tree Inserting into a B-Tree Deletion from a B-Tree

Page 109: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

109SNUIDB Lab.Data Structures

Indexed Sequential Access Method (ISAM)

Small dictionary may reside in internal memory Large dictionary must reside on a disk

A disk consists of many blocks Elements (records) are packed into a block in ascending order

ISAM file (= Indexed Sequential file) disk-based file structure for large dictionary Provide good sequential and random access

Primary Concern: reducing the number of disk IO s during search

Page 110: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

File Structures 110SNUIDB Lab.Data Structures

Overview : ISAM File R

61

10 20 50 61 101

30 40 45D C A

1 3 10A B A

11 20C D

51 55 57A D B

65 70 101

E B C

120150

A D

50D

60B

61A

a

b c

ihgfed

part description records

PART No PART-Type

primary key

Example : Indexed sequential structure (when using overflow chain)

Page 111: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

File Structures 111SNUIDB Lab.Data Structures

File Structure Evolution

Sequential file: records can be accessed sequentially not good for access, insert, delete records in random order

Indexed-sequential file = Indexed Sequential Access Method (ISAM)

Sequential file + Index B+ tree file

Indexed-sequential file + Balance

But here we study “B tree” data structure --- m-Way search tree is similar to ISAM file

Page 112: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

112SNUIDB Lab.Data Structures

Table of Contents AVL TREES RED-BLACK TREES SPLAY TREES

B-TREES Indexed Sequential Files (ISAM) m-WAY Search Trees B-Trees of Order m Height of a B-Tree Searching a B-Tree Inserting into a B-Tree Deletion from a B-Tree

Page 113: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

113SNUIDB Lab.Data Structures

m-Way Search Tree Binary Search Tree can be generalized to m-Way search tree White box is an internal node while solid square is external node Each internal node can have up to six keys and seven pointers A certain input sequence would build the following example

Page 114: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

114SNUIDB Lab.Data Structures

Properties of m-WAY Search Tree

m-Way search tree has the following properties In the corresponding extended search tree, each internal node has up to p+1 children

and between 1 and p elements. Every node with p elements has exactly p + 1 children

Let k1, ...,kp be the keys of these ordered elements (k1< k2<…< kp) Let c0, c1…, cp be the p+1 children of the node.

Key ranges The elements in the subtree with root co have keys smaller than k1

The elements in the subtree with root cp have keys larger than kp

The elements in the subtree with root ci have keys larger than ki but smaller than ki+1, 1≤ i ≤ p

Page 115: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

115SNUIDB Lab.Data Structures

Searching an m-Way Search Tree

Search the element with key 31 10< 31 <80 : Move to the middle subtree k2< 31 <k3 : Move to the third subtree 31< k1 : Move to the first subtree, Fall off the tree, No element

Page 116: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

116SNUIDB Lab.Data Structures

Inserting into an m-Way Search Tree

Insert the new key 31 (a) Search for 31 & Fall off the tree at the node[32,26] (b) Insert at the first element in the node

Page 117: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

117SNUIDB Lab.Data Structures

Inserting into an m-Way Search Tree

Insert the new key 65: (a) Search for 65 & Fall off the tree at six subtree of node [20,30,40,50,60,70] (b) New node obtained & New node becomes the sixth child of [20,30,40,50,60,70]

65

Page 118: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

118SNUIDB Lab.Data Structures

Deleting from an m-Way Search Tree

Delete the key 20 Search for 20, k1=20 & C0=C1=0, and Simply Delete 20

Page 119: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

119SNUIDB Lab.Data Structures

Deleting from an m-Way Search Tree

Delete the key 84 Search for 84, k2=84 & C1=C2=0, and Simply Delete 84

Page 120: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

120SNUIDB Lab.Data Structures

Deleting from an m-Way Search Tree

Delete the key 5 : (a) Only one key in the node Need to replace (b) From C0, move up the element with largest key move the key 4 to the key 5’s position

Page 121: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

121SNUIDB Lab.Data Structures

Deleting from an m-Way Search Tree

Delete the key 10 Replace this element with either the largest element in C0 or smallest element in C1

So, element with key 5 is moved to top & element with key 4 is moved up to the key 5’s position

Page 122: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

122SNUIDB Lab.Data Structures

Height of an m-Way Search Tree

h : Height, n : number of elements, m : m-way The number of elements: h ≤ n ≤ mh – 1

The number of nodes : ∑ mi = (mh-1)/(m-1) nodes

The range of height: logm(n+1) ≤ h ≤ n

The number of disk accesses : O(h)

We want to ensure that the height h is close to logm(n+1) this is accomplished by B-tree!

i = 0

h - 1

Page 123: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

123SNUIDB Lab.Data Structures

Table of Contents B-TREES

Indexed Sequential Access Method(ISAM) m-WAY Search Trees B-Trees of Order m Height of a B-Tree Searching a B-Tree Inserting into a B-Tree Deletion from a B-Tree

Page 124: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

124SNUIDB Lab.Data Structures

Definition: B tree of Order m

B-tree is a m-way search tree satisfying the following properties

1. The root has at least two children2. All internal nodes other than the root at least m/2 children

(pointers to the children nodes)3. All external nodes are at the same level

Internal node has several pairs of a key and a pointer to a disk block

Page 125: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

125SNUIDB Lab.Data Structures

B-Trees of Order m B-tree of order 2: Fully binary tree B-tree of order 3 (= 2- 3 tree): 2 or 3 children B-tree of order 4 (= 2- 3- 4 tree): 2 or 3 or 4 children

Page 126: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

126SNUIDB Lab.Data Structures

Table of Contents B-TREES

Indexed Sequential Access Method(ISAM) m-WAY Search Trees B-Trees of Order m Height of a B-Tree Searching a B-Tree Inserting into a B-Tree Deletion from a B-Tree

Page 127: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

127SNUIDB Lab.Data Structures

Height of a B-Tree of Order m

Remember: All internal nodes other than the root at least m/2 children (pointers to the children nodes)

Lemma 16.3Let T be a B-tree of order mLet h be the height of T

Let d= m/2 be the degree of TLet n be the number of elements in T

(a) 2dh-1 ≤ n ≤ mh – 1

(b) logm(n + 1) ≤ h ≤ logd((n+1)/2) + 1

Page 128: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

128SNUIDB Lab.Data Structures

Table of Contents B-TREES

m-WAY Search Trees B-Trees of Order m Height of a B-Tree Searching a B-Tree Inserting into a B-Tree Deletion from a B-Tree

Page 129: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

129SNUIDB Lab.Data Structures

Searching a B-Tree Using the same algorithm as is an m-way search tree

First visit the root with the given key K Compare K and the keys in the root Follow the corresponding pointer Search the child node recursively until the leaf node If arrived at the leaf node, Search the external node

Page 130: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

130SNUIDB Lab.Data Structures

Table of Contents B-TREES

Indexed Sequential Access Method(ISAM) m-WAY Search Trees B-Trees of Order m Height of a B-Tree Searching a B-Tree Inserting into a B-Tree Deletion from a B-Tree

Page 131: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

131SNUIDB Lab.Data Structures

Inserting into a B-Tree First search with the key of the new element Found Insertion fails (if duplicates are not permitted) Not Found Insert the new element into the last encountered internal node If (no overflow) return ok Else (overflow) { split the last internal node into 2 new nodes;

go to the 1-level up for updating the parent node (recursively)}

Page 132: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

132SNUIDB Lab.Data Structures

Notations in B-tree e : element c : children p : parent node Full node has m elements & m+1 children

d : degree of a node at least m/2 ei : element pointers ci : children pointers

Overfull node m, c0, (e1, c1), …, (em, cm )

P : Left remainder d-1, c0, (e1, c1), …, (ed1-1, cd-1)

Q : Right remainder m-d, cd, (ed+1, cd+1), …, (em, cm )

Pair(ed, Q) is inserted into the parent of P

Page 133: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

133SNUIDB Lab.Data Structures

Insert the key 3 in B-tree

Page 134: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

134SNUIDB Lab.Data Structures

Insert the key 25 in B-tree d = 4 & the target node (“6”, 20,30,40,50,60,70)

P : 3, 0, (20,0), (25,0), (30,0) Q : 3, 0, (50,0), (60,0), (70,0) (40, Q) is inserted into parent of P

P Q

Page 135: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

135SNUIDB Lab.Data Structures

Growing B tree by Insertion (1)

20

30 80

9050 60

10 25 55 9570 82 8535 40

Fig 16.25 B-tree of order 3 (at least 2 pointers) node format: M, C0, (e1, c1), (e2, c2)… (em, cm) where m= no of elements, ei = elements, ci = children

Page 136: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

136SNUIDB Lab.Data Structures

Growing B tree by Insertion (2)

35 40 44

d = 2 & the target node was (2, c5, (35,c6),(40, c7)) Overfull node

3, c5, (35,c6), (40,c7), (44,cn)

20

30 80

9050 60

10 25 55 9570 82 85

Insert 44

Page 137: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

137SNUIDB Lab.Data Structures

Growing B tree by Insertion (3)

35 44

d= 3/2 2, split the overfull node into P & Q P : 1, 0, (35,0) Q : 1, 0, (44,0)

(40,Q) into the parent A of P Again the parent A is overfull node

20

30 80

90

10 25 55 9570 82 85

40 50 60P Q C D

S T

Page 138: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

138SNUIDB Lab.Data Structures

Growing B tree by Insertion (4)

35 44

Node A is again the overfull node A : 3, P, (40,Q), (50,C), (60,D)

20

30 80

90

10 25 55 9570 82 85

40 50 60P Q C D

S TA

Page 139: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

139SNUIDB Lab.Data Structures

Growing B tree by Insertion (5)

35 44

d= 3/2 = 2, split the node A into A & B A : 1, P, (40,Q) B : 1, C, (60,D)

Move (50,B) into the parent of A Again the parent of A is overfull node

20 90

10 25 55 9570 82 85

40 60P Q C D

S TA30 50 80

B

R

Page 140: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

140SNUIDB Lab.Data Structures

Growing B-tree by Insertion (6)

35 44

The root node R is now the overfull node R : 3, S, (30,A), (50,B), 80,T)

20 90

10 25 55 9570 82 85

40 60P Q C D

S TA30 50 80

B

R

Page 141: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

141SNUIDB Lab.Data Structures

Growing B tree by Insertion (7)

35 44

d= 3/2 2, split the root node R into R & U R : 1, S, (30,A) U : 1, B, (80,T)

Move the new index (50, U) into the parent of R R has no parent, we create a new root for the new index

20 90

10 25 55 9570 82 85

40 60P Q C D

S TA30

50

80B

R U

Page 142: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

142SNUIDB Lab.Data Structures

Disk accesses in B tree Worst case: Insertion may cause s nodes to split upto root Number of disk accesses in the worst case

h (to read in the nodes on the search path)+2s (to write out the two split parts of each node)+1 (to write the new root or the node into which an insertion that does not result in a

split is made) h + 2s + 1 at most 3h + 1 because s is at most h

The worst scenario is to have 3h+1 disk IOs by splitting

Page 143: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

143SNUIDB Lab.Data Structures

Table of Contents B-TREES

Indexed Sequential Access Method (ISAM) m-WAY Search Trees B-Trees of Order m Height of a B-Tree Searching a B-Tree Inserting into a B-Tree Deletion from a B-Tree

Page 144: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

144SNUIDB Lab.Data Structures

Deletion from a B-Tree Deletion cases

Case 1: Key k is in the leaf node Case 2: Key k is in the internal node

Case 2 by replacing the deleted element with

The largest element in its left-neighboring subtree The smallest element in its right-neighboring subtree

Replacing element is supposed to be in a leaf, so we can apply case 1

Page 145: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

145SNUIDB Lab.Data Structures

Case 1: Leaf Node Deletion If key k is in leaf node, then remove k from leaf node

X

If underfull node happens, care must be exercised (will address shortly)

Page 146: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

146SNUIDB Lab.Data Structures

Case 2: Internal Node Deletion

If the key k is in the internal node xOne of 3 subcases: a. If the left child y preceding k in x has ≥ t keys b. If the right child z following k in x has ≥ t keys c. If both the left and right subchild y and z have t-1 keys

t : m/2 - 1 (half of the keys)

Page 147: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

147SNUIDB Lab.Data Structures

Case 2a: Internal Node Deletion (1)

If the left child y preceding k in x has ≥ t keys Find predecessor k' of k in subtree rooted at y Replace k by k' in x

x

Page 148: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

148SNUIDB Lab.Data Structures

Case 2a: Internal Node Deletion (2)

If underfull node happens, care must be exercised (will address shortly)

Page 149: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

149SNUIDB Lab.Data Structures

Case 2b: Internal Node Deletion

If the right child z following k in x has ≥ t keys: (a) Find successor k' of k in subtree y, (b) Replace k by k' in x

If underfull node happens, care must be exercised (will address shortly)

Page 150: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

150SNUIDB Lab.Data Structures

Case 2c: Internal Node Deletion

If both the left and right subchild y and z have t-1 keys Select the replacement as shown in case 2a or case 2b If underfull node happens, care must be exercised as shown in the below

Page 151: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

151SNUIDB Lab.Data Structures

Shrinking B-Tree by Deletion (1)

35 44

20 90

10 25 55 9570 82 85

40 60P Q C D

S TA30

50

80B

R U * Try to delete “44”

35 44

20 90

10 25 55 9570 82 85

40 60P Q C D

S TA30

50

80B

R U

After deleting “44”, “35” & “40” are merged

Page 152: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

152SNUIDB Lab.Data Structures

Shrinking B-Tree by Deletion (2) “20” & “40” also needs to merged

“50” and “80” also needs to merged

Page 153: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

153SNUIDB Lab.Data Structures

“50” & “80” are merged and now the old root becomes empty

Shrinking B-Tree by Deletion (3)

Free the old root and make the new root

Page 154: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

154SNUIDB Lab.Data Structures

Technique for Reducing Node Merging: B tree Deletion with Redistribution (1)

Underflow happens & Redistribute some neighbor nodes Move down 10 & move up 6

Try to delete “25”

Save node merging

Page 155: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

155SNUIDB Lab.Data Structures

Try to delete “10”

Technique for Reducing Node Merging: B tree Deletion with Redistribution (2)

Merging is unavoidable

Page 156: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

156SNUIDB Lab.Data Structures

Consider redistributing some nodes: move down “30” & move up “50”

Technique for Reducing Node Merging: B tree Deletion with Redistribution (3)

Save propagation of node merging

Page 157: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

157SNUIDB Lab.Data Structures

Summary (0)

Chapter 15: Binary Search Tree BST and Indexed BST

Chapter 16: Balanced Search Tree AVL tree: BST + Balance B-tree: generalized AVL tree

Chapter 17: Graph

Page 158: SNU IDB Lab. Ch 16. Balanced Search Trees © copyright 2006 SNU IDB Lab

158SNUIDB Lab.Data Structures

Summary (1) Balanced tree structures

- Height is O(log n)

AVL and Red-black trees Suitable for internal memory applications

Splay trees Individual dictionary operation 0(n) Take less time to perform a sequence of u operations 0(u log u)

B-trees Suitable for external memory