SlideShare a Scribd company logo
RED-BLACK TREE
INTRODUCTION
 A balancing binary search tree.
 A data structure requires an extra one bit color field
in each node which is red or black.
 Leonidas J. Guibas and Robert Sedgewick derived
the red-black tree from the symmetric binary B-tree.
EXAMPLE OF RED BLACK TREE
PROPERTIES OF RED BLACK TREE
 The root and leaves (NIL’s) are black.
 A RED parent never has a RED child.
 in other words: there are never two successive RED nodes in
a path
 Every path from the root to an empty subtree contains the same
number of BLACK nodes
 called the black height
 We can use black height to measure the balance of a red-black
tree.
RED BLACK TREE OPERATIONS
Average
Space O(n)
Search
O(log2 n)
Traversal *O(n)
Insertion
O(log2 n)
Deletion
O(log2 n)
RED BLACK TREES: ROTATION
 Basic operation for changing tree structure is called
rotation:
RB TREES: ROTATION
x
y
y
x
 A lot of pointer manipulation
 x keeps its left child
 y keeps its right child
 x’s right child becomes y’s left child
 x’s and y’s parents change
A B
C A
B C
ROTATION ALGORITHM
LEFT-ROTATE(T, x)
y ← x->right
x->right← y->left
y->left->p ← x
y->p ← x->p
if x->p = Null
then T->root ← y
else if x = x->p->left
then x->p->left ← y
else x->p->right ← y
y->left ← x
x->p ← y
RIGHT-ROTATE(T, x)
y ← x->left
x->left← y->right
y->right->p ← x
y->p ← x->p
if x->p = Null
then T->root ← y
else if x = x->p->right
then x->p->right ← y
else x->p->left ← y
y->right ← x
x->p ← y
Runtime : O(1) for Both.
ROTATION EXAMPLE
 Rotate left about 9:
12
5 9
7
8
11
ROTATION EXAMPLE
 Rotate left about 9:
5 12
7
9
118
RED-BLACK TREES: INSERTION
 Insertion: the basic idea
 Insert x into tree, color x red
 Only r-b property 3 might be violated (if p[x] red)
 If so, move violation up tree until a place is found where it can
be fixed
 Total time will be O(log n)
Insertion Algorithm
TreeNode<T> rbInsert(TreeNode<T> root,TreeNode<T> x)// returns a new root
{
root=bstInsert(root,x); // a modification of BST insertItem
x.setColor(red);
while (x != root and x.getParent().getColor() == red) {
if (x.getParent() == x.getParent().getParent().getLeft()) {
//parent is left child
y = x.getParent().getParent().getRight() //uncle of x
if (y.getColor() == red) {// uncle is red
x.getParent().setColor(black);
y.setColor(black);
x.getParent().getParent().setColor(red);
x = x.getParent().getParent();
} else { // uncle is black
if (x == x.getParent().getRight()) {
x = x.getParent();
root = left_rotate(root,x);
}
x.getParent().setColor(black);
x.getParent().getParent().setColor(red);
root = right_rotate(root,x.getParent().getParent());
}}
} else
// ... symmetric to if
} // end while
root.setColor(black);
return root;
}
RB INSERT: CASE 1
B
 
x
● Case 1: “uncle” is red
● In figures below, all ’s are
equal-black-height
subtrees
C
A D
  
C
A D
 
y
new x
Same action whether x is a left or a right child
B
 
x
case 1
RB INSERT: CASE 2
B
 
x
● Case 2:
■ “Uncle” is black
■ Node x is a right child
● Transform to case 3 via a left-rotation
C
A 
C
By
A
 
x 
case 2

y
Transform case 2 into case 3 (x is left child) with a left rotation
This preserves property 4: all downward paths contain same number of black nodes
RB INSERT: CASE 3
● Case 3:
■ “Uncle” is black
■ Node x is a left child
● Change colors; rotate right
B
Ax

case 3
C
B
A
 
x 
y C
 
Perform some color changes and do a right rotation
Again, preserves property 4: all downward paths contain same number of black nodes
RB INSERT: CASES 4-6
 Cases 1-3 hold if x’s parent is a left child
 If x’s parent is a right child, cases 4-6 are symmetric
(swap left for right)
INSERTION EXAMPLE
Insert 65
47
7132
93
INSERTION EXAMPLE
Insert 65
47
7132
65 93
INSERTION EXAMPLE
Insert 65
47
7132
65 93
Insert 82
INSERTION EXAMPLE
82
Insert 65 47
7132
65 93
Insert 82
INSERTION EXAMPLE
82
Insert 65
47
7132
65 93
Insert 82
65
71
93
change nodes’ colors
INSERTION EXAMPLE
9365
71
82
Insert 65
47
32
Insert 82
Insert 87
87
INSERTION EXAMPLE
9365
71
82
Insert 65
47
32
Insert 82
Insert 87
87
INSERTION EXAMPLE
9365
71
87
Insert 65
47
32
Insert 82
Insert 87
82
INSERTION EXAMPLE
9365
87
Insert 65
47
32
Insert 82
Insert 87
82
71
87
93
change nodes’ colors
INSERTION EXAMPLE
87
93
65
Insert 65
47
32
Insert 82
Insert 87
82
71
RB TREE DELETION ALGORITHM
TreeNode<T> rbDelete(TreeNode<T> root,TreeNode<T> z)
//return new root, z contains item to be deleted
{
TreeNode<T> x,y;
// find node y, which is going to be removed
if (z.getLeft() == null || z.getRight() == null)
y = z;
else {
y = successor(z); // or predecessor
z.setItem(y.getItem); // move data from y to z
}
// find child x of y
if (y.getRight() != null)
x = y.getRight();
else
x = y.getLeft();
// Note x might be null; create a pretend node
if (x == null) {
x = new TreeNode<T>(null);
x.setColor(black);
}
RED-BLACK TREE RETRIEVAL:
 Retrieving a node from a red-black tree doesn’t
require more than the use of the BST procedure,
which takes O(log n) time.
RB TREES EFFICIENCY
 All operations work in time O(height)
 and we have proved that heigh is O(log n)
 hence, all operations work in time O(log n)! – much
more efficient than linked list or arrays implementation of
sorted list!
RED BLACK TREE APPLICATION
 Completely Fair Scheduler in Linux Kernel.
 Computational Geometry Data structures.
 Red-black trees make less structural changes to balance
themselves .
 To keep track of the virtual memory segments for a process -
the start address of the range serves as the key.
 Red–black trees are also particularly valuable in functional
programming
To keep track of the virtual memory segments for a process - the
start address of the range serves as the key.
COMPARISON BETWEEN AVL AND RB TREE
 For small data:
 insert: RB tree & avl tree has constant number of max
rotation but RB tree will be faster because on average
RB tree use less rotation.
 lookup: AVL tree is faster, because AVL tree has less
depth.
 delete: RB tree has constant number of max rotation but
AVL tree can have O(log N) times of rotation as worst.
and on average RB tree also has less number of
rotation thus RB tree is faster.
COMPARISON BETWEEN AVL AND RB TREE
(CONTINUED)
 for large data:
 insert: AVL tree is faster. because you need to lookup for a
particular node before insertion. as you have more data the time
difference on looking up the particular node grows proportional to
O(log N). but AVL tree & RB tree still only need constant number
of rotation at the worst case. Thus the bottle neck will become
the time you lookup for that particular node.
 lookup: AVL tree is faster. (same as in small data case)
 delete: AVL tree is faster on average, but in worst case RB tree is
faster. because you also need to lookup for a very deep node to
swap before removal (similar to the reason of insertion). on
average both trees has constant number of rotation. but RB tree
has a constant upper bound for rotation.
Thank
You

More Related Content

PPT
Red black tree
PPTX
Red black trees
PDF
Binary tree
PDF
Red black tree
PPT
Binary Search Tree
PDF
Red Black Trees
PPTX
Graph representation
PDF
Red black tree
Red black tree
Red black trees
Binary tree
Red black tree
Binary Search Tree
Red Black Trees
Graph representation
Red black tree

What's hot (20)

PPTX
Tower of Hanoi
PPT
Data Structure and Algorithms Binary Search Tree
PPTX
Radix sort presentation
PPT
Singly link list
PPTX
PPT On Sorting And Searching Concepts In Data Structure | In Programming Lang...
PPTX
Searching and sorting
PPT
B trees in Data Structure
PPTX
Representation of binary tree in memory
PPT
Lec 17 heap data structure
PPTX
Digital Search Tree
PPT
Selection sort
PPTX
PPT
Algorithm: Quick-Sort
PPTX
Data Structures - Lecture 8 [Sorting Algorithms]
PPTX
Doubly Linked List
PPT
Breadth first search
PPTX
Linked list
PPTX
Insertion operation in array(ds)
Tower of Hanoi
Data Structure and Algorithms Binary Search Tree
Radix sort presentation
Singly link list
PPT On Sorting And Searching Concepts In Data Structure | In Programming Lang...
Searching and sorting
B trees in Data Structure
Representation of binary tree in memory
Lec 17 heap data structure
Digital Search Tree
Selection sort
Algorithm: Quick-Sort
Data Structures - Lecture 8 [Sorting Algorithms]
Doubly Linked List
Breadth first search
Linked list
Insertion operation in array(ds)
Ad

Viewers also liked (20)

PPTX
Balanced Tree(AVL Tree,Red Black Tree)
PPTX
Balanced Tree (AVL Tree & Red-Black Tree)
PPTX
Academic Pressure Too Much To Handle
PDF
10 Red-Black Trees
PPTX
Red black trees1109
PPT
Red Black Trees
PPTX
Lecture 9 data structures and algorithms
PPTX
THREADED BINARY TREE AND BINARY SEARCH TREE
PPT
1.5 binary search tree
PPTX
Traversals | Data Structures
PPTX
Tree - Data Structure
PPTX
PDF
Binary Search Algorithm
PPTX
Tree in data structure
PPTX
Trees (data structure)
Balanced Tree(AVL Tree,Red Black Tree)
Balanced Tree (AVL Tree & Red-Black Tree)
Academic Pressure Too Much To Handle
10 Red-Black Trees
Red black trees1109
Red Black Trees
Lecture 9 data structures and algorithms
THREADED BINARY TREE AND BINARY SEARCH TREE
1.5 binary search tree
Traversals | Data Structures
Tree - Data Structure
Binary Search Algorithm
Tree in data structure
Trees (data structure)
Ad

Similar to Red Black Tree (20)

PPTX
Balance tree. Short overview
PPTX
Red black trees
PPT
lecture 14
PPT
16 rbtrees
PPTX
Red black tree
PPTX
datastructurestreeand type of trees.pptx
PPT
rbtrees.ppt
PPT
Advanced data structures and implementation
PPTX
Trees in data structure
PPT
Unit 2 ADvanced Data Sturctures and Algorithms Red-black_trees.ppt
PDF
Red-Black Tree Presentation By Mobin Nesari.pdf
PPTX
UNIT 2 TREES & GRAPH COMPLETE NOTES OF DATA STRUCTURE
PPT
Trees
PDF
Red black trees
PPT
Data structures final lecture 1
PDF
Skiena algorithm 2007 lecture05 dictionary data structure trees
PDF
Cse 225 rbt_red_black_tree
PDF
Tree Leetcode - Interview Questions - Easy Collections
PPTX
BST.pptx this isp used for learning binary search trees
PPTX
BST.pptx this is Good for data structure
Balance tree. Short overview
Red black trees
lecture 14
16 rbtrees
Red black tree
datastructurestreeand type of trees.pptx
rbtrees.ppt
Advanced data structures and implementation
Trees in data structure
Unit 2 ADvanced Data Sturctures and Algorithms Red-black_trees.ppt
Red-Black Tree Presentation By Mobin Nesari.pdf
UNIT 2 TREES & GRAPH COMPLETE NOTES OF DATA STRUCTURE
Trees
Red black trees
Data structures final lecture 1
Skiena algorithm 2007 lecture05 dictionary data structure trees
Cse 225 rbt_red_black_tree
Tree Leetcode - Interview Questions - Easy Collections
BST.pptx this isp used for learning binary search trees
BST.pptx this is Good for data structure

Recently uploaded (20)

PDF
ChatGPT for Dummies - Pam Baker Ccesa007.pdf
PDF
What if we spent less time fighting change, and more time building what’s rig...
DOC
Soft-furnishing-By-Architect-A.F.M.Mohiuddin-Akhand.doc
PDF
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
PDF
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
PDF
Chinmaya Tiranga quiz Grand Finale.pdf
PPTX
UV-Visible spectroscopy..pptx UV-Visible Spectroscopy – Electronic Transition...
PPTX
Lesson notes of climatology university.
PPTX
Cell Types and Its function , kingdom of life
PDF
Black Hat USA 2025 - Micro ICS Summit - ICS/OT Threat Landscape
PPTX
Final Presentation General Medicine 03-08-2024.pptx
PDF
GENETICS IN BIOLOGY IN SECONDARY LEVEL FORM 3
PDF
2.FourierTransform-ShortQuestionswithAnswers.pdf
PDF
Classroom Observation Tools for Teachers
PDF
Computing-Curriculum for Schools in Ghana
PDF
Supply Chain Operations Speaking Notes -ICLT Program
PPTX
Cell Structure & Organelles in detailed.
PPTX
202450812 BayCHI UCSC-SV 20250812 v17.pptx
PDF
OBE - B.A.(HON'S) IN INTERIOR ARCHITECTURE -Ar.MOHIUDDIN.pdf
PPTX
master seminar digital applications in india
ChatGPT for Dummies - Pam Baker Ccesa007.pdf
What if we spent less time fighting change, and more time building what’s rig...
Soft-furnishing-By-Architect-A.F.M.Mohiuddin-Akhand.doc
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
Chinmaya Tiranga quiz Grand Finale.pdf
UV-Visible spectroscopy..pptx UV-Visible Spectroscopy – Electronic Transition...
Lesson notes of climatology university.
Cell Types and Its function , kingdom of life
Black Hat USA 2025 - Micro ICS Summit - ICS/OT Threat Landscape
Final Presentation General Medicine 03-08-2024.pptx
GENETICS IN BIOLOGY IN SECONDARY LEVEL FORM 3
2.FourierTransform-ShortQuestionswithAnswers.pdf
Classroom Observation Tools for Teachers
Computing-Curriculum for Schools in Ghana
Supply Chain Operations Speaking Notes -ICLT Program
Cell Structure & Organelles in detailed.
202450812 BayCHI UCSC-SV 20250812 v17.pptx
OBE - B.A.(HON'S) IN INTERIOR ARCHITECTURE -Ar.MOHIUDDIN.pdf
master seminar digital applications in india

Red Black Tree

  • 2. INTRODUCTION  A balancing binary search tree.  A data structure requires an extra one bit color field in each node which is red or black.  Leonidas J. Guibas and Robert Sedgewick derived the red-black tree from the symmetric binary B-tree.
  • 3. EXAMPLE OF RED BLACK TREE
  • 4. PROPERTIES OF RED BLACK TREE  The root and leaves (NIL’s) are black.  A RED parent never has a RED child.  in other words: there are never two successive RED nodes in a path  Every path from the root to an empty subtree contains the same number of BLACK nodes  called the black height  We can use black height to measure the balance of a red-black tree.
  • 5. RED BLACK TREE OPERATIONS Average Space O(n) Search O(log2 n) Traversal *O(n) Insertion O(log2 n) Deletion O(log2 n)
  • 6. RED BLACK TREES: ROTATION  Basic operation for changing tree structure is called rotation:
  • 7. RB TREES: ROTATION x y y x  A lot of pointer manipulation  x keeps its left child  y keeps its right child  x’s right child becomes y’s left child  x’s and y’s parents change A B C A B C
  • 8. ROTATION ALGORITHM LEFT-ROTATE(T, x) y ← x->right x->right← y->left y->left->p ← x y->p ← x->p if x->p = Null then T->root ← y else if x = x->p->left then x->p->left ← y else x->p->right ← y y->left ← x x->p ← y RIGHT-ROTATE(T, x) y ← x->left x->left← y->right y->right->p ← x y->p ← x->p if x->p = Null then T->root ← y else if x = x->p->right then x->p->right ← y else x->p->left ← y y->right ← x x->p ← y Runtime : O(1) for Both.
  • 9. ROTATION EXAMPLE  Rotate left about 9: 12 5 9 7 8 11
  • 10. ROTATION EXAMPLE  Rotate left about 9: 5 12 7 9 118
  • 11. RED-BLACK TREES: INSERTION  Insertion: the basic idea  Insert x into tree, color x red  Only r-b property 3 might be violated (if p[x] red)  If so, move violation up tree until a place is found where it can be fixed  Total time will be O(log n)
  • 12. Insertion Algorithm TreeNode<T> rbInsert(TreeNode<T> root,TreeNode<T> x)// returns a new root { root=bstInsert(root,x); // a modification of BST insertItem x.setColor(red); while (x != root and x.getParent().getColor() == red) { if (x.getParent() == x.getParent().getParent().getLeft()) { //parent is left child y = x.getParent().getParent().getRight() //uncle of x if (y.getColor() == red) {// uncle is red x.getParent().setColor(black); y.setColor(black); x.getParent().getParent().setColor(red); x = x.getParent().getParent(); } else { // uncle is black if (x == x.getParent().getRight()) { x = x.getParent(); root = left_rotate(root,x); } x.getParent().setColor(black); x.getParent().getParent().setColor(red); root = right_rotate(root,x.getParent().getParent()); }} } else // ... symmetric to if } // end while root.setColor(black); return root; }
  • 13. RB INSERT: CASE 1 B   x ● Case 1: “uncle” is red ● In figures below, all ’s are equal-black-height subtrees C A D    C A D   y new x Same action whether x is a left or a right child B   x case 1
  • 14. RB INSERT: CASE 2 B   x ● Case 2: ■ “Uncle” is black ■ Node x is a right child ● Transform to case 3 via a left-rotation C A  C By A   x  case 2  y Transform case 2 into case 3 (x is left child) with a left rotation This preserves property 4: all downward paths contain same number of black nodes
  • 15. RB INSERT: CASE 3 ● Case 3: ■ “Uncle” is black ■ Node x is a left child ● Change colors; rotate right B Ax  case 3 C B A   x  y C   Perform some color changes and do a right rotation Again, preserves property 4: all downward paths contain same number of black nodes
  • 16. RB INSERT: CASES 4-6  Cases 1-3 hold if x’s parent is a left child  If x’s parent is a right child, cases 4-6 are symmetric (swap left for right)
  • 20. INSERTION EXAMPLE 82 Insert 65 47 7132 65 93 Insert 82
  • 21. INSERTION EXAMPLE 82 Insert 65 47 7132 65 93 Insert 82 65 71 93 change nodes’ colors
  • 25. INSERTION EXAMPLE 9365 87 Insert 65 47 32 Insert 82 Insert 87 82 71 87 93 change nodes’ colors
  • 27. RB TREE DELETION ALGORITHM TreeNode<T> rbDelete(TreeNode<T> root,TreeNode<T> z) //return new root, z contains item to be deleted { TreeNode<T> x,y; // find node y, which is going to be removed if (z.getLeft() == null || z.getRight() == null) y = z; else { y = successor(z); // or predecessor z.setItem(y.getItem); // move data from y to z } // find child x of y if (y.getRight() != null) x = y.getRight(); else x = y.getLeft(); // Note x might be null; create a pretend node if (x == null) { x = new TreeNode<T>(null); x.setColor(black); }
  • 28. RED-BLACK TREE RETRIEVAL:  Retrieving a node from a red-black tree doesn’t require more than the use of the BST procedure, which takes O(log n) time.
  • 29. RB TREES EFFICIENCY  All operations work in time O(height)  and we have proved that heigh is O(log n)  hence, all operations work in time O(log n)! – much more efficient than linked list or arrays implementation of sorted list!
  • 30. RED BLACK TREE APPLICATION  Completely Fair Scheduler in Linux Kernel.  Computational Geometry Data structures.  Red-black trees make less structural changes to balance themselves .  To keep track of the virtual memory segments for a process - the start address of the range serves as the key.  Red–black trees are also particularly valuable in functional programming To keep track of the virtual memory segments for a process - the start address of the range serves as the key.
  • 31. COMPARISON BETWEEN AVL AND RB TREE  For small data:  insert: RB tree & avl tree has constant number of max rotation but RB tree will be faster because on average RB tree use less rotation.  lookup: AVL tree is faster, because AVL tree has less depth.  delete: RB tree has constant number of max rotation but AVL tree can have O(log N) times of rotation as worst. and on average RB tree also has less number of rotation thus RB tree is faster.
  • 32. COMPARISON BETWEEN AVL AND RB TREE (CONTINUED)  for large data:  insert: AVL tree is faster. because you need to lookup for a particular node before insertion. as you have more data the time difference on looking up the particular node grows proportional to O(log N). but AVL tree & RB tree still only need constant number of rotation at the worst case. Thus the bottle neck will become the time you lookup for that particular node.  lookup: AVL tree is faster. (same as in small data case)  delete: AVL tree is faster on average, but in worst case RB tree is faster. because you also need to lookup for a very deep node to swap before removal (similar to the reason of insertion). on average both trees has constant number of rotation. but RB tree has a constant upper bound for rotation.