• No results found

2-3-4 Trees and Red- Black Trees

N/A
N/A
Protected

Academic year: 2021

Share "2-3-4 Trees and Red- Black Trees"

Copied!
31
0
0

Loading.... (view fulltext now)

Full text

(1)

2-3-4 Trees and

Red-Black Trees

(2)

2-3-4

Trees

Revealed

• Nodes store 1, 2, or 3 keys and have 2, 3, or 4 children, respectively

• All leaves have the same depth

b e h n r

a c d f g i l m p s x

1 2

---log(N + 1) ≤ height ≤ log(N + 1) k

(3)

• Introduction of nodes with more than 1 key, and more than 2 children

4-node:

• 3 keys, 4 links

2-3-4 Tree Nodes

2-node:

• same as a binary node

<a >a

3-node:

• 2 keys, 3 links <a >b <a >c >a <b >b <c a b c >a <b a a b

(4)

• That means if d = N1/2, we get a height of 2 • However, searching out the correct child

on each level requires O(log N1/2) by binary search

• 2 log N1/2 = O(log N) which is not as good as we had hoped for!

Why 2-3-4?

• Why not minimize height by maximizing children in a “d-tree”?

• Let each node have d children so that we get O(logd N) search time! Right?

log

(5)

Insertion into 2-3-4 Trees

• Insert the new key at the lowest internal node reached in the search

• What about a 4-node?

• We can’t insert another key! d

g d g

3-node becomes 4-node2-node becomes 3-node

d g d f g

(6)

• Now we can perform the insertion using one of the previous two cases

• Since we follow this

method from the root down to the leaf, it is called

Top Down Insertion

• In our way down the tree, whenever we reach a 4-node, we break it up into two 2-nodes, and move the middle element up into the parent node

n g e f n d g d f g f n e d e

(7)

Splitting the Tree

As we travel down the tree, if we encounter any 4-node we will break it up into 2-nodes. This guarantees that we will never have the problem of inserting the middle element of a former 4-node into its parent 4-4-node.

a f i l p r x a f i l p r g g n c t x c n t Whoa, cowboy

(8)

a f i l p r x a f i l p r x c t n n c t g g Whoa, cowboy

(9)

a p r x t n f l a p r x c i t n l a p r x c t n g f i l c i g f g Whoa, cowboy

(10)

Time Complexity of Insertion

in 2-3-4 Trees

Time complexity:

• A search visits O(log N) nodes

• An insertion requires O(log N) node splits • Each node split takes constant time

• Hence, operations Search and Insert each take time O(log N)

Notes:

• Instead of doing splits top-down, we can perform them bottom-up starting at the in-sertion node, and only when needed. This is called bottom-up insertion.

• A deletion can be performed by fusing nodes (inverse of splitting), and takes O(log N) time

(11)

Beyond 2-3-4 Trees

What do we know about 2-3-4 Trees? • Balanced

• O(log N) search time

• Different node structures

Can we get 2-3-4 tree advantages in a binary tree format???

Welcome to the world of Red-Black Trees!!!

Siskel

Ebert

(12)

Red

-Black Tree

A red-black tree is a binary search tree with the following properties:

• edges are colored red or blackno two consecutive red edges

on any root-leaf path

• same number of black edges on any root-leaf path

(= black height of the tree)

• edges connecting leaves are black

Black Edge

Red Edge

(13)

2-3-4 Tree Evolution

Note how 2-3-4 trees relate to red-black trees

2-3-4 Red-Black

Now we see red-black trees are just a way of representing 2-3-4 trees!

(14)

More

Red

-Black Tree

Properties

N # of internal nodes L # leaves (= N + 1) H height B black height Property 1: 2B ≤ N + 1 ≤ 4B Property 2: Property 3: 1 2 ---log(N + 1) ≤ ≤B log(N + 1) N + 1 ( ) log ≤ ≤H 2 log(N + 1)

(15)

Insertion into

Red

-Black Trees

1.Perform a standard search to find the leaf where the key should be added

2.Replace the leaf with an internal node with the new key

3.Color the incoming edge of the new node red

4.Add two new leaves, and color their incoming edges black

5.If the parent had an incoming red edge, we now have two consecutive red edges! We must reorganize tree to remove that

violation. What must be done depends on the sibling of the parent.

R G

R G

(16)

Let:

n be the new node p be its parent

g be its grandparent

Insertion - Plain and Simple

Case 1: Incoming edge of p is black

g

p

n

STOP!

Pretty easy, huh? No violation

(17)

Restructuring

We call this a “right rotation”

• No further work on tree is necessary • Inorder remains unchanged

• Tree becomes more balanced • No two consecutive red edges!

Case 2: Incoming edge of p is red, and

its sibling is black

g p n g p n Uh oh! Much Better!

(18)

More Rotations

Similar to a right rotation, we can do a “left rotation”... Simple, huh? g p n g p n

(19)

Double Rotations

What if the new node is between its parent and grandparent in the inorder sequence?

We must perform a “double rotation”

(which is no more difficult than a “single” one)

g p n g p n

This would be called a

(20)

Last of the Rotations

And this would be called a

“right-left double rotation”

g

p

n

g p

(21)

• We call this a “promotion”

• Note how the black depth remains un-changed for all of the descendants of g

• This process will continue upward beyond

g if necessary: rename g as n and repeat.

Bottom-Up Rebalancing

Case 3: Incoming edge of p is red and its

sibling is also red

g p n g p n

(22)

Summary of Insertion

• If two red edges are present, we do either • a restructuring (with a simple or double

rotation) and stop, or

• a promotion and continue

• A restructuring takes constant time and is performed at most once. It reorganizes an off-balanced section of the tree.

• Promotions may continue up the tree and are executed O(log N) times.

• The time complexity of an insertion is O(logN).

(23)

An Example

Start by inserting “REDSOX” into an empty tree

E R D S O X

(24)

E R D S O X

A Cool Example

C

E R D S O C

(25)

An Unbelievable Example

U

E R D S O X C E R D S O X C

What should we do?

Oh No!

(26)

E R D O C U R D S O X C

Double Rotation

U

(27)

A Beautiful Example

B

E R D S O X C U E R S O X D U B C What now?

(28)

E R S O X D U B C

Rotation

E R O C U D B

(29)

S

A Super Example

E R S O X C U D B E R S O X C U D B S Holy Consecutive

Red Edges, Batman!

We could’ve placed it on either side

(30)

E R S O X C U D B S Use the E R S O X C U D B BIFF! Bat-Promoter!!

(31)

E R S O X C U D B S E R S O X C U D B S

Rotation

The SUN lab and Red-Bat trees are safe... ...for now!!!

References

Related documents

The Welsh Ministers have powers under the Housing Act 1996 to regulate Registered Social Landlords (RSLs) in Wales, in relation to the provision of housing and matters relating

• Plugging max-heap into priority queue sort gives us a new sorting algorithm. • Running time is O(n log n) because each insert and delete max takes

So the total worst-case time of Meld is just a constant times the number of trees, or O(log n). The change in potential unfortunately is not enough to overcome this – it’s possible

This procedure does a constant number of worst-case O(log k) time or amortized expected O(1) time operations, so this operation runs in amortized expected O(log k) time, and

We show that a trivial modification of the standard skip list analysis allows us to prove that insertion, deletion, and search in an n-element symmetric skip list all take O(log n)

Effect of pH, water activity and temperature on the growth and accumulation of ochratoxin A produced by three strains of Aspergillus carbonarius.. isolated from

If the grid is stored using a binary search tree, the expected running time is O(n log n).. Using hashing, the running time improves by

In this paper, we describe an O(n log 2 r)-time algorithm based on new insights into the structure of optimal trees. In 2, we define shallow and proper trees and prove that some