Fiveable

🧩Intro to Algorithms Unit 7 Review

QR code for Intro to Algorithms practice questions

7.3 Red-Black trees

7.3 Red-Black trees

Written by the Fiveable Content Team • Last updated August 2025
Written by the Fiveable Content Team • Last updated August 2025
🧩Intro to Algorithms
Unit & Topic Study Guides

Red-Black trees are self-balancing binary search trees that use node coloring to maintain balance. They offer efficient searching, insertion, and deletion operations with a time complexity of O(log n), making them a crucial topic in the study of balanced trees.

These trees strike a balance between the strict AVL tree structure and the more relaxed B-tree balance. By using color-based rules and rotations, Red-Black trees maintain their efficiency while allowing for more flexibility in tree structure compared to other balanced tree types.

Red-Black Tree Properties

Structural Characteristics

  • Self-balancing binary search trees with nodes colored red or black
  • Root node always black, leaf nodes (NIL nodes) considered black
  • Red nodes have two black child nodes
  • Path from node to descendant leaves contains same number of black nodes (black-height property)
  • Height with n nodes always O(logn)O(\log n), ensuring efficient operations
  • Longest root-to-leaf path no more than twice as long as shortest path, maintaining rough balance
  • Efficient searching, insertion, and deletion operations, all with time complexity O(logn)O(\log n)
  • Type of 2-3-4 tree, red nodes represent "glued" nodes in corresponding 2-3-4 tree structure

Balancing Mechanism

  • Node coloring enforces structural constraints without requiring perfect balance
  • Alternating red and black nodes distributes tree weight evenly, preventing long paths
  • Black nodes contribute to black-height property, promoting balance
  • Red nodes allow local imbalances while maintaining overall tree balance
  • Coloring rules prevent consecutive red nodes, limiting maximum path length
  • Interplay between red and black nodes achieves balance between strict AVL tree balance and relaxed B-tree balance

Node Coloring for Balance

Structural Characteristics, File:5 minimal red-black trees nN.svg - Wikimedia Commons

Color Distribution

  • Alternating pattern of red and black nodes helps distribute tree weight evenly
  • Prevents formation of long paths, ensuring logarithmic height
  • Black nodes contribute to black-height property
    • All paths from root to leaves have same number of black nodes
    • Promotes overall balance in tree structure
  • Red nodes allow for local imbalances
    • Provides flexibility in tree structure
    • Maintains overall tree balance

Coloring Rules and Balance

  • Prevent consecutive red nodes
    • Indirectly limits maximum path length
    • Helps maintain tree's logarithmic height property
  • During insertion and deletion operations, node coloring identifies and resolves property violations
    • Uses color changes and rotations to restore balance
  • Balances between strict AVL tree balance and more relaxed B-tree balance
    • Achieves good performance for various operations (searching, insertion, deletion)

Red-Black Tree Operations

Structural Characteristics, Datei:Red-black tree example with NIL.svg – Wikipedia

Insertion Process

  • Begins with standard binary search tree insertion
  • Colors new node red
  • Applies fix-up procedures to maintain Red-Black properties
  • Fix-up procedure involves cases based on color and position of newly inserted node's uncle
    • May require color changes and rotations
  • Rotations include left rotations and right rotations
    • Rebalance tree structure
    • Preserve binary search tree property
  • Maintains worst-case time complexity of O(logn)O(\log n)

Deletion Procedure

  • More complex than insertion
  • Involves cases based on color and position of node to be deleted and its replacement
  • May require fix-up procedure to restore Red-Black properties
    • Can involve color changes and rotations similar to insertion fix-up
  • Special attention given to maintaining black-height property
    • Ensures tree remains balanced after deletion
  • Also maintains worst-case time complexity of O(logn)O(\log n)

Red-Black Trees vs Other Structures

Performance Comparison

  • Offer good balance between performance and implementation complexity
  • AVL trees maintain stricter balance than Red-Black trees
    • Potentially faster lookups
    • Slower insertions and deletions due to more frequent rotations
  • Red-Black trees perform better with frequent insertions and deletions
    • Require fewer rotations to maintain balance
  • B-trees and variants (2-3 trees, 2-3-4 trees) suited for disk-based storage systems
    • Minimize disk accesses
  • Red-Black trees typically used for in-memory data structures

Practical Applications

  • Widely used in implementing associative arrays
  • Underlying data structure for TreeSet and TreeMap in Java's Collections framework
  • Often outperform theoretically superior data structures
    • Simpler implementation
    • Good average-case performance
  • Preferred for general-purpose applications requiring balance of search, insertion, and deletion performance
  • Choice depends on specific use case
    • Consider factors like frequency of operations, memory constraints, and implementation complexity
Pep mascot
Upgrade your Fiveable account to print any study guide

Download study guides as beautiful PDFs See example

Print or share PDFs with your students

Always prints our latest, updated content

Mark up and annotate as you study

Click below to go to billing portal → update your plan → choose Yearly → and select "Fiveable Share Plan". Only pay the difference

Plan is open to all students, teachers, parents, etc
Pep mascot
Upgrade your Fiveable account to export vocabulary

Download study guides as beautiful PDFs See example

Print or share PDFs with your students

Always prints our latest, updated content

Mark up and annotate as you study

Plan is open to all students, teachers, parents, etc
report an error
description

screenshots help us find and fix the issue faster (optional)

add screenshot

2,589 studying →