29
Red & Black Tree Anwar Mamat

14.Red Black Tree - University Of Maryland · Balanced BST Unbalanced BST Search: O(Log n) Search: O(n) Balanced Binary Search Tree • Red & Black Tree • AVL Tree • 2-3 Tree

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 14.Red Black Tree - University Of Maryland · Balanced BST Unbalanced BST Search: O(Log n) Search: O(n) Balanced Binary Search Tree • Red & Black Tree • AVL Tree • 2-3 Tree

Red&BlackTree

AnwarMamat

Page 2: 14.Red Black Tree - University Of Maryland · Balanced BST Unbalanced BST Search: O(Log n) Search: O(n) Balanced Binary Search Tree • Red & Black Tree • AVL Tree • 2-3 Tree

BST

BalancedBSTUnbalancedBST

Search:O(Logn) Search:O(n)

Page 3: 14.Red Black Tree - University Of Maryland · Balanced BST Unbalanced BST Search: O(Log n) Search: O(n) Balanced Binary Search Tree • Red & Black Tree • AVL Tree • 2-3 Tree

BalancedBinarySearchTree

• Red&BlackTree• AVLTree• 2-3Tree• B-tree

Page 4: 14.Red Black Tree - University Of Maryland · Balanced BST Unbalanced BST Search: O(Log n) Search: O(n) Balanced Binary Search Tree • Red & Black Tree • AVL Tree • 2-3 Tree

Red&BlackTree

• ABSTsuchthat:• Treeedgeshavecolor:RedorBlack• Nonodehastworededgesconnectedtoit.• Everypathfromroottonulllinkhasthesamenumberofblacklinks.• Redlinksleanleft.• NewnodeedgeisRed

Page 5: 14.Red Black Tree - University Of Maryland · Balanced BST Unbalanced BST Search: O(Log n) Search: O(n) Balanced Binary Search Tree • Red & Black Tree • AVL Tree • 2-3 Tree

Search:red-blackBSTs

• Observation.SearchisthesameasforelementaryBST(ignorecolor).

Page 6: 14.Red Black Tree - University Of Maryland · Balanced BST Unbalanced BST Search: O(Log n) Search: O(n) Balanced Binary Search Tree • Red & Black Tree • AVL Tree • 2-3 Tree

Red-blackBSTrepresentation

Page 7: 14.Red Black Tree - University Of Maryland · Balanced BST Unbalanced BST Search: O(Log n) Search: O(n) Balanced Binary Search Tree • Red & Black Tree • AVL Tree • 2-3 Tree

Elementaryred-blackBSToperations• Leftrotation.Orienta(temporarily)right-leaningredlinktoleanleft.

rotateEleft(before) rotateEleft(after)

Page 8: 14.Red Black Tree - University Of Maryland · Balanced BST Unbalanced BST Search: O(Log n) Search: O(n) Balanced Binary Search Tree • Red & Black Tree • AVL Tree • 2-3 Tree

Elementaryred-blackBSToperationscont.• Leftrotation.Orienta(temporarily)right-leaningredlinktoleanleft.

Page 9: 14.Red Black Tree - University Of Maryland · Balanced BST Unbalanced BST Search: O(Log n) Search: O(n) Balanced Binary Search Tree • Red & Black Tree • AVL Tree • 2-3 Tree

Elementaryred-blackBSToperationscont.• Rightrotation:Orientaleft-leaningredlinkto(temporarily)leanright.

rotateEleft(before) rotateEleft(after)

Page 10: 14.Red Black Tree - University Of Maryland · Balanced BST Unbalanced BST Search: O(Log n) Search: O(n) Balanced Binary Search Tree • Red & Black Tree • AVL Tree • 2-3 Tree

Elementaryred-blackBSToperationscont.• Rightrotation:Orientaleft-leaningredlinkto(temporarily)leanright.

Page 11: 14.Red Black Tree - University Of Maryland · Balanced BST Unbalanced BST Search: O(Log n) Search: O(n) Balanced Binary Search Tree • Red & Black Tree • AVL Tree • 2-3 Tree

Elementaryred-blackBSToperationscont.• Colorflip.

Colorflip(before) Colorflip (after)

Page 12: 14.Red Black Tree - University Of Maryland · Balanced BST Unbalanced BST Search: O(Log n) Search: O(n) Balanced Binary Search Tree • Red & Black Tree • AVL Tree • 2-3 Tree

Elementaryred-blackBSToperationscont.• Colorflip.

Page 13: 14.Red Black Tree - University Of Maryland · Balanced BST Unbalanced BST Search: O(Log n) Search: O(n) Balanced Binary Search Tree • Red & Black Tree • AVL Tree • 2-3 Tree

InsertioninaLLRBtree

• Rightchildred,leftchildblack:rotateleft.• Leftchild,left-left grandchildred:rotateright.• Bothchildrenred:flipcolors.

Page 14: 14.Red Black Tree - University Of Maryland · Balanced BST Unbalanced BST Search: O(Log n) Search: O(n) Balanced Binary Search Tree • Red & Black Tree • AVL Tree • 2-3 Tree

InsertioninaLLRBtree:Javaimplementation

Page 15: 14.Red Black Tree - University Of Maryland · Balanced BST Unbalanced BST Search: O(Log n) Search: O(n) Balanced Binary Search Tree • Red & Black Tree • AVL Tree • 2-3 Tree

R&BExample:Insertion

MInsert:M,D

D

Page 16: 14.Red Black Tree - University Of Maryland · Balanced BST Unbalanced BST Search: O(Log n) Search: O(n) Balanced Binary Search Tree • Red & Black Tree • AVL Tree • 2-3 Tree

R&BExample:Insertion

MInsert:M,X

X

RotateLeft

Page 17: 14.Red Black Tree - University Of Maryland · Balanced BST Unbalanced BST Search: O(Log n) Search: O(n) Balanced Binary Search Tree • Red & Black Tree • AVL Tree • 2-3 Tree

R&BExample:Insertion

Insert:M,X M

X

RotateLeft

Page 18: 14.Red Black Tree - University Of Maryland · Balanced BST Unbalanced BST Search: O(Log n) Search: O(n) Balanced Binary Search Tree • Red & Black Tree • AVL Tree • 2-3 Tree

R&BExample:Insertion

Insert:M,D,X

D

M

XD

M

X

Flip Color

Page 19: 14.Red Black Tree - University Of Maryland · Balanced BST Unbalanced BST Search: O(Log n) Search: O(n) Balanced Binary Search Tree • Red & Black Tree • AVL Tree • 2-3 Tree

R&BExample:Insertion

Insert:M,D,B

D

M

B

B

D

MFlip Color

RotateRight

Page 20: 14.Red Black Tree - University Of Maryland · Balanced BST Unbalanced BST Search: O(Log n) Search: O(n) Balanced Binary Search Tree • Red & Black Tree • AVL Tree • 2-3 Tree

R&BExample:Insertion

Insert:M,D,B

B

D

MFlip Color

B

D

M

Page 21: 14.Red Black Tree - University Of Maryland · Balanced BST Unbalanced BST Search: O(Log n) Search: O(n) Balanced Binary Search Tree • Red & Black Tree • AVL Tree • 2-3 Tree

R&BExample:Insertion

M,D,BInsertH

B

D

M

B

D

M

H

Page 22: 14.Red Black Tree - University Of Maryland · Balanced BST Unbalanced BST Search: O(Log n) Search: O(n) Balanced Binary Search Tree • Red & Black Tree • AVL Tree • 2-3 Tree

R&BExample:Insertion

M,D,B,HInsertS

B

D

M

H

B

D

M

H S

Colorflip

Page 23: 14.Red Black Tree - University Of Maryland · Balanced BST Unbalanced BST Search: O(Log n) Search: O(n) Balanced Binary Search Tree • Red & Black Tree • AVL Tree • 2-3 Tree

R&BExample:InsertionM,D,B,HInsertS

B

D

M

H S

Colorflip

B

D

M

H S

RotateLeft

Page 24: 14.Red Black Tree - University Of Maryland · Balanced BST Unbalanced BST Search: O(Log n) Search: O(n) Balanced Binary Search Tree • Red & Black Tree • AVL Tree • 2-3 Tree

R&BExample:InsertionM,D,B,HInsertS

B

D

M

H S

RotateLeft

B

D

M

H

S

Page 25: 14.Red Black Tree - University Of Maryland · Balanced BST Unbalanced BST Search: O(Log n) Search: O(n) Balanced Binary Search Tree • Red & Black Tree • AVL Tree • 2-3 Tree

R&BExample:InsertionM,D,B,H,SInsertE,K

B

D

M

H

S

B

D

M

H

S

E K

Page 26: 14.Red Black Tree - University Of Maryland · Balanced BST Unbalanced BST Search: O(Log n) Search: O(n) Balanced Binary Search Tree • Red & Black Tree • AVL Tree • 2-3 Tree

R&BExample:InsertionM,D,B,H,SInsertE,K

B

D

M

H

S

E K

B

D

M

H

S

E K

Color flip

RotateLeft

Page 27: 14.Red Black Tree - University Of Maryland · Balanced BST Unbalanced BST Search: O(Log n) Search: O(n) Balanced Binary Search Tree • Red & Black Tree • AVL Tree • 2-3 Tree

R&BExample:InsertionM,D,B,H,SInsertE,K

B

D

M

H

S

E D

B

D

M

HS

E

K

Rotateleft

Page 28: 14.Red Black Tree - University Of Maryland · Balanced BST Unbalanced BST Search: O(Log n) Search: O(n) Balanced Binary Search Tree • Red & Black Tree • AVL Tree • 2-3 Tree

R&BExample:InsertionM,D,B,H,SInsertE,K

B

D

M

HS

E

K

RotateRight

B

D M

H

SE K

Page 29: 14.Red Black Tree - University Of Maryland · Balanced BST Unbalanced BST Search: O(Log n) Search: O(n) Balanced Binary Search Tree • Red & Black Tree • AVL Tree • 2-3 Tree

R&BExample:InsertionM,D,B,H,S,E,K

B

D M

H

SE K B

D M

H

SE K

Color flip