• Tidak ada hasil yang ditemukan

Struktur Data & Algoritme (Data Structures & Algorithms)

N/A
N/A
Protected

Academic year: 2024

Membagikan "Struktur Data & Algoritme (Data Structures & Algorithms)"

Copied!
12
0
0

Teks penuh

(1)

Struktur Data & Algoritme (

Data Structures & Algorithms

)

Fakultas Ilmu Komputer Universitas Indonesia Semester Ganjil - 2006/2007

Version 2.0 - Internal Use Only

Denny [email protected]

Suryana Setiawan[email protected]

Red Black Tree

Motivation

„ History: invented by Rudolf Bayer (1972) who called them "symmetric binary B-trees", its modern name by Leo J. Guibas and Robert Sedgewick ( 1978).

„ Red-black trees, along with AVL trees, offer the best possible worst-case guarantees for insertion time, deletion time, and search time -- O(log n).

„ many data structures used in computational geometry can be based on red-black trees.

„ in functional programming, used to construct

associative arrays and sets which can retain previous versions after mutations.

(2)

SDA/RED-BLACK/DN-SUR/V2.0/3

Objectives

„ Understand the definition, properties and operations of Red-Black Trees.

SDA/RED-BLACK/DN-SUR/V2.0/4

Outline

„ Red-Black Trees

„ Definition

„ Operation

(3)

SDA/RED-BLACK/DN-SUR/V2.0/5

Red-Black Trees: Definition

„ The red-black tree is a binary search tree whose nodes colored either black or red, under properties:

„ Property#1. Every node is colored either redor black

„ Property#2. The root is black

„ Property#3. If a node is red, its children must be black

„ Property#4. Every path from a node to a null reference must contain the same number of black nodes

30 15

5 50

10

70

85 60

40 55

80 90 65

20

Red-Black Trees

„ The insertion sequence is 10, 85, 15, 70, 20, 60, 30, 50, 65, 80, 90, 40, 5, 55

(4)

SDA/RED-BLACK/DN-SUR/V2.0/7

Implications

„ Consecutive rednodes are disallowed

„ Every red node must have a black parent

„ The longest possible path from the root to a leaf is no more than twice as long as the shortest possible path.

SDA/RED-BLACK/DN-SUR/V2.0/8

„ B = total black nodes from root to leaf

„ N = total all nodes

„ H = height

) 1 log(

2 )

1 log(

) 1 log(

) 1 2log(

1

2 ) 1 log(

) 1 log(

2 2 log 2

log

2 1 2

1 2 1

2

2 2 2

+

≤ +

+

≤ +

≤ + +

=

=

≤ +

N H

N

N B

N

B N

N B

B B

N N

B B

B B

B B

All operation guaranteed logarithmic.

(5)

SDA/RED-BLACK/DN-SUR/V2.0/9

Variants of the description

„ A red-black tree as a binary search tree whose edges (instead of nodes) are colored in red or black.

„ The color of a node in our terminology corresponds to the color of the edge connecting the node to its parent, except that the root node is always black.

Algorithm: Finding A node

„ As in the binary search node

(6)

SDA/RED-BLACK/DN-SUR/V2.0/11

Algorithm: Inserting a Node (1)

„ Inserted as in binary search tree as a new leaf node, but the node must be colored red

„ why?

• new item is always inserted as leaf in the tree

• if we color a new item black, then we will have a longer path of black nodes (violate property #4)

„ Is the resulting tree still a red-black tree?

„ if the parent is black, no problemo

„ If it is the only node in the tree or it is a root, repaint it to be a black node.

„ if the parent is red, we create two consecutive red nodes (violate property #3), then should be

restructured…..

SDA/RED-BLACK/DN-SUR/V2.0/12

Algorithm: Inserting a Node (2)

„ Let, the new node is N, the Parent node is P, and the sibling of the parent node is U (from ‘uncle’), and the parent of P is G (from ‘grandparent’).

„ If P and U are red and G is black, repaint P and U to be black, and G to be red (color flipping)

„ G, then, may violate property#2 (when it is the root) or property #3 (when its parent is red), perform the algorithm with G as N

„ If P is red but U is black, then there are four subcases

„ N is left child of P and U is right-sibling of P:-> SRR

„ N is right child of P and U is left-sibling of P:-> SLR

„ N is right child if P and U is right-sibling of P:-> DRR

„ N is left child if P and U is left-sibling of P:-> DLR

(7)

SDA/RED-BLACK/DN-SUR/V2.0/13

A B

G

N

U P

C D E A B U

P N

C

D E

G

Color Flip (1)

N

C2 C1

N

C1 C2

A B

G

N

U P

C D E

Color Flip (2)

A B

G

N

U P

C D E

(8)

SDA/RED-BLACK/DN-SUR/V2.0/15

A B

G

N

U P

C D E A B

N G

U P

C

D E

Single Rotation

X: new node P: parent U: uncle

G: Grandparent

SDA/RED-BLACK/DN-SUR/V2.0/16

B C

G

N

U P

A D E A B

P G

U N

C

D E

Double Rotation

N: new node P: parent U: sibling G: Grandparent

(9)

SDA/RED-BLACK/DN-SUR/V2.0/17

30 15

5 10

70

85 60

50 55

80 90 65

20

40

Insert 45 (original)

45 30 15

5 10

70

85 60

50 55

80 90 65

20

40

Insert 45

(10)

SDA/RED-BLACK/DN-SUR/V2.0/19

45 30 15

5 10

70

85 60

50 55

80 90 65

20

40

Insert 45 (color flip)

SDA/RED-BLACK/DN-SUR/V2.0/20

45 30 15

5

10 70

85 60

50 55

80 90 65

20

40

Insert 45 (single rotation)

(11)

SDA/RED-BLACK/DN-SUR/V2.0/21

Top-down algorithm

„ Color-flipping described previously performed buttom-up wise (from the insertion position up to above).

„ Weiss’book recommends to do color-flipping top- down wise:

„ On the way going down from the root during in finding the insertion position, if the current node has two red children, color flip them (the current and the children).

„ The flipping will be possibly followed by other flipping as well as the rotation

„ When the insertion position reached and the new red node inserted, the next possibly operation is just the rotation

Algorithm: deletion

„ Firstly, the deletion following the binary seach tree’s deletion algorithms

„ Every deletion causes in deleting a leaf node or deleting an internal node with one child

„ Deleting red node, no problemo

„ Deleting black node whose a red child, will also be OK by witching its color with its child’s color

„ The problem, when both the deleted node and its child are black

(12)

SDA/RED-BLACK/DN-SUR/V2.0/23

Algorithm: deletion (2)

SDA/RED-BLACK/DN-SUR/V2.0/24

Summary

„ Red-Black trees use color as balancing information instead of height in AVL trees.

„ An insertion may cause a local perturbation (two consecutive red nodes)

„ The pertubation is either

„ resolved locally (rotations), or

„ propagated to a higher level in the tree by recoloring (color flip)

„ O(1) for a rotation or color flip

„ At most one restructuring per insertion.

„ O(log n) color flips

„ Total time: O(log n)

Referensi

Dokumen terkait

In the scheme of the (unbalanced) priority search tree outlined above, each node p divides the plane into two parts along the line x = p.x. All nodes of the left subtree lie to

//polynomials A and B are represented as circular lists with head.. We have introduced the notion of a singly linked list. Each element on the list is a node of fixed

abstrak dimana implementasi pada tingkat lebih rendah dapat menggunakan struktur sequential (array) atau struktur berkait (linear

As it name implies, the insertion 7 sort algorithm inserts an unsorted item in an already sorted 8 item list. This makes you think of the use of two seperated 9 arrays - one

„ REVIEW: Suatu kelas yang meng-implements sebuah interface, berarti kelas tersebut mewarisi interface (definisi method-method) = interface inheritance, bukan

„ Cairan: dalam suatu jaringan pipa yang mengalirkan minyak, berapa kapasitas debit (volume yang mengalir per satuan waktu) minyak melalui jaringan tersebut. „ Lalu lintas: dalam

As a rule, the curricula for all six majors in this body of knowledge 121 Software Engineering, 122 Computer Science, 123 Computer Engineering, 124 System Analysis, 125 Cybersecurity,