SlideShare une entreprise Scribd logo
Red-Black Trees—Again


• rank(x) = # black pointers on path from x to an
  external node.
• Same as #black nodes (excluding x) from x to an
  external node.
• rank(external node) = 0.
An Example
                                                  3
                                            10

                                                                             2
                    2   7                                               40

        1   3               1   8                     2 30                       1   45



1                                            1                 1   35                     1 60
    1           1   5                            20
                            0       0                                            0
                                                      1   25
                                                                   0    0             0          0
0       0 0             0               0
                                                 0                 0
Properties Of rank(x)

•   rank(x) = 0 for x an external node.
•   rank(x) = 1 for x parent of external node.
•   p(x) exists => rank(x) <= rank(p(x)) <= rank(x) + 1.
•   g(x) exists => rank(x) < rank(g(x)).
Red-Black Tree

A binary search tree is a red-black tree iff
 integer ranks can be assigned to its nodes so
 as to satisfy the stated 4 properties of rank.
Relationship Between rank() And Color

•   (p(x),x) is a red pointer iff rank(x) = rank(p(x)).
•   (p(x),x) is a black pointer iff rank(x) = rank(p(x)) – 1.
•   Red node iff pointer from parent is red.
•   Root is black.
•   Other nodes are black iff pointer from parent is black.
•   Given rank(root) and node/pointer colors, remaining
    ranks may be computed on way down.
rank(root)

• Height <= 2 * rank(root).
• No external nodes at levels 1, 2, …, rank(root).
   So, #nodes >= 1 <= i <= rank(root) 2i -1 = 2 rank(root) – 1.
   So, rank(root) <= log2(n+1).
• So, height(root) <= 2log2(n+1).
Join(S,m,B)
• Input
     Dictionary S of pairs with small keys.
     Dictionary B of pairs with big keys.
     An additional pair m.
     All keys in S are smaller than m.key.
     All keys in B are bigger than m.key.
• Output
   A dictionary that contains all pairs in S and B
    plus the pair m.
   Dictionaries S and B may be destroyed.
Join Binary Search Trees

                   m


               S       B




• O(1) time.
Join Red-black Trees

• When rank(S) = rank(B), use binary search tree
  method.

                       m


                  S          B

• rank(root) = rank(S) + 1 = rank(B) + 1.
rank(S) > rank(B)
• Follow right child pointers from root of S to first node
  x whose rank equals rank(B).


                                       p(x)
        p(x)

                                                 m
   S               x
                                           x          B
               a       b
                                       a        b
rank(S) > rank(B)
• If there are now 2 consecutive red pointers/nodes,
  perform bottom-up rebalancing beginning at m.
• O(rank(S) – rank(B)).

                                   p(x)
        p(x)
                                            m
   S               x
                                       x        B
               a       b
                                   a       b
rank(S) < rank(B)



• Follow left child pointers from root of B to first
  node x whose rank equals rank(B).
• Similar to case when rank(S) > rank(B).
Split(k)

• Inverse of join.
• Obtain
   S … dictionary of pairs with key < k.
   B … dictionary of pairs with key > k.
   m … pair with key = k (if present).
Split A Binary Search Tree
        A              S                 B

a           B
        C       b
    c       D
        E       d
    e       m
        f       g
Split A Binary Search Tree
                        S            B

        B           A
    C       b   a
c       D
    E       d
e       m
    f       g
Split A Binary Search Tree
                        S              B

                    A          B
    C           a                  b
c       D
    E       d
e       m
    f       g
Split A Binary Search Tree
                        S              B

                    A          B
                a       C          b
        D
                    c
    E       d
e       m
    f       g
Split A Binary Search Tree
                        S                   B

                    A               B
                a       C   D           b

                    c           d
    E
e       m
    f       g
Split A Binary Search Tree
                    S                       B

                A                   B
            a       C       D           b

                c       E       d

                    e
    m
f       g
Split A Binary Search Tree
               S                               B

           A                           B
       a       C               D           b

           c       E       g       d

               e       f
m
Split A Red-Black Tree

• Previous strategy does not split a red-black
  tree into two red-black trees.
• Must do a search for m followed by a
  traceback to the root.
• During the traceback use the join operation
  to construct S and B.
Split A Red-Black Tree
        A             S=f       B=g
a           B
        C       b
    c       D
        E       d
    e       m
        f       g
Split A Red-Black Tree
        A             S=f       B=g
a           B
        C       b
    c       D
        E       d
    e
Split A Red-Black Tree
        A             S=f           B=g
a           B          S = join(e, E, S)
        C       b
    c       D
        E       d
    e
Split A Red-Black Tree
    A                 S=f           B =g
a           B          S = join(e, E, S)
        C       b      B = join(B, D, d)
    c       D
                d
Split A Red-Black Tree
    A                 S=f           B =g
a           B          S = join(e, E, S)
        C       b      B = join(B, D, d)
    c                  S = join(c, C, S)
Split A Red-Black Tree
    A             S=f           B =g
a       B          S = join(e, E, S)
            b      B = join(B, D, d)
                   S = join(c, C, S)
                   B = join(B, B, b)
Split A Red-Black Tree
    A         S=f           B =g
a              S = join(e, E, S)
               B = join(B, D, d)
               S = join(c, C, S)
               B = join(B, B, b)

               S = join(a, A, S)
Complexity Of Split

• O(log n)
• See text.

Contenu connexe

Tendances

Tendances (20)

Binary Indexed Tree / Fenwick Tree
Binary Indexed Tree / Fenwick TreeBinary Indexed Tree / Fenwick Tree
Binary Indexed Tree / Fenwick Tree
 
B+ tree intro,uses,insertion and deletion
B+ tree intro,uses,insertion and deletionB+ tree intro,uses,insertion and deletion
B+ tree intro,uses,insertion and deletion
 
Tree terminology and introduction to binary tree
Tree terminology and introduction to binary treeTree terminology and introduction to binary tree
Tree terminology and introduction to binary tree
 
AtCoderに毎回参加したくなる仕組み
AtCoderに毎回参加したくなる仕組みAtCoderに毎回参加したくなる仕組み
AtCoderに毎回参加したくなる仕組み
 
Avl tree
Avl treeAvl tree
Avl tree
 
358 33 powerpoint-slides_10-trees_chapter-10
358 33 powerpoint-slides_10-trees_chapter-10358 33 powerpoint-slides_10-trees_chapter-10
358 33 powerpoint-slides_10-trees_chapter-10
 
AtCoder Regular Contest 043 解説
AtCoder Regular Contest 043 解説AtCoder Regular Contest 043 解説
AtCoder Regular Contest 043 解説
 
Depth First Search ( DFS )
Depth First Search ( DFS )Depth First Search ( DFS )
Depth First Search ( DFS )
 
Tries data structures
Tries data structuresTries data structures
Tries data structures
 
Schönhage Strassen Algorithm
Schönhage Strassen AlgorithmSchönhage Strassen Algorithm
Schönhage Strassen Algorithm
 
Binary Search - Design & Analysis of Algorithms
Binary Search - Design & Analysis of AlgorithmsBinary Search - Design & Analysis of Algorithms
Binary Search - Design & Analysis of Algorithms
 
Marge Sort
Marge SortMarge Sort
Marge Sort
 
Quick sort-170316064200
Quick sort-170316064200Quick sort-170316064200
Quick sort-170316064200
 
Red Black Trees
Red Black TreesRed Black Trees
Red Black Trees
 
Optimal binary search tree
Optimal binary search treeOptimal binary search tree
Optimal binary search tree
 
Counting sort
Counting sortCounting sort
Counting sort
 
Binomial Heaps and Fibonacci Heaps
Binomial Heaps and Fibonacci HeapsBinomial Heaps and Fibonacci Heaps
Binomial Heaps and Fibonacci Heaps
 
Red black tree
Red black treeRed black tree
Red black tree
 
DFS_New.pptx
DFS_New.pptxDFS_New.pptx
DFS_New.pptx
 
CFG to CNF
CFG to CNFCFG to CNF
CFG to CNF
 

Similaire à Red black 2 (10)

DS MCQS.pptx
DS MCQS.pptxDS MCQS.pptx
DS MCQS.pptx
 
Trees, Binary Search Tree, AVL Tree in Data Structures
Trees, Binary Search Tree, AVL Tree in Data Structures Trees, Binary Search Tree, AVL Tree in Data Structures
Trees, Binary Search Tree, AVL Tree in Data Structures
 
2 depth first
2 depth first2 depth first
2 depth first
 
Lec21
Lec21Lec21
Lec21
 
09 binary-trees
09 binary-trees09 binary-trees
09 binary-trees
 
(Binary tree)
(Binary tree)(Binary tree)
(Binary tree)
 
Roots of polynomials
Roots of polynomialsRoots of polynomials
Roots of polynomials
 
Mock 1
Mock 1Mock 1
Mock 1
 
Unit 6 tree
Unit   6 treeUnit   6 tree
Unit 6 tree
 
Modul penggunaan kalkulator sainstifik sebagai ABM dalam Matematik
Modul penggunaan kalkulator sainstifik sebagai ABM dalam MatematikModul penggunaan kalkulator sainstifik sebagai ABM dalam Matematik
Modul penggunaan kalkulator sainstifik sebagai ABM dalam Matematik
 

Plus de Core Condor

Plus de Core Condor (6)

Weighted graphs
Weighted graphsWeighted graphs
Weighted graphs
 
Red black 1
Red black 1Red black 1
Red black 1
 
Graph isomorphism
Graph isomorphismGraph isomorphism
Graph isomorphism
 
Disjoint sets
Disjoint setsDisjoint sets
Disjoint sets
 
Red blacktrees
Red blacktreesRed blacktrees
Red blacktrees
 
2 3 tree
2 3 tree2 3 tree
2 3 tree
 

Dernier

Dernier (20)

Basic phrases for greeting and assisting costumers
Basic phrases for greeting and assisting costumersBasic phrases for greeting and assisting costumers
Basic phrases for greeting and assisting costumers
 
B.ed spl. HI pdusu exam paper-2023-24.pdf
B.ed spl. HI pdusu exam paper-2023-24.pdfB.ed spl. HI pdusu exam paper-2023-24.pdf
B.ed spl. HI pdusu exam paper-2023-24.pdf
 
The Art Pastor's Guide to Sabbath | Steve Thomason
The Art Pastor's Guide to Sabbath | Steve ThomasonThe Art Pastor's Guide to Sabbath | Steve Thomason
The Art Pastor's Guide to Sabbath | Steve Thomason
 
Basic_QTL_Marker-assisted_Selection_Sourabh.ppt
Basic_QTL_Marker-assisted_Selection_Sourabh.pptBasic_QTL_Marker-assisted_Selection_Sourabh.ppt
Basic_QTL_Marker-assisted_Selection_Sourabh.ppt
 
Matatag-Curriculum and the 21st Century Skills Presentation.pptx
Matatag-Curriculum and the 21st Century Skills Presentation.pptxMatatag-Curriculum and the 21st Century Skills Presentation.pptx
Matatag-Curriculum and the 21st Century Skills Presentation.pptx
 
Introduction to Quality Improvement Essentials
Introduction to Quality Improvement EssentialsIntroduction to Quality Improvement Essentials
Introduction to Quality Improvement Essentials
 
Gyanartha SciBizTech Quiz slideshare.pptx
Gyanartha SciBizTech Quiz slideshare.pptxGyanartha SciBizTech Quiz slideshare.pptx
Gyanartha SciBizTech Quiz slideshare.pptx
 
Students, digital devices and success - Andreas Schleicher - 27 May 2024..pptx
Students, digital devices and success - Andreas Schleicher - 27 May 2024..pptxStudents, digital devices and success - Andreas Schleicher - 27 May 2024..pptx
Students, digital devices and success - Andreas Schleicher - 27 May 2024..pptx
 
UNIT – IV_PCI Complaints: Complaints and evaluation of complaints, Handling o...
UNIT – IV_PCI Complaints: Complaints and evaluation of complaints, Handling o...UNIT – IV_PCI Complaints: Complaints and evaluation of complaints, Handling o...
UNIT – IV_PCI Complaints: Complaints and evaluation of complaints, Handling o...
 
Basic Civil Engg Notes_Chapter-6_Environment Pollution & Engineering
Basic Civil Engg Notes_Chapter-6_Environment Pollution & EngineeringBasic Civil Engg Notes_Chapter-6_Environment Pollution & Engineering
Basic Civil Engg Notes_Chapter-6_Environment Pollution & Engineering
 
Operations Management - Book1.p - Dr. Abdulfatah A. Salem
Operations Management - Book1.p  - Dr. Abdulfatah A. SalemOperations Management - Book1.p  - Dr. Abdulfatah A. Salem
Operations Management - Book1.p - Dr. Abdulfatah A. Salem
 
How to Break the cycle of negative Thoughts
How to Break the cycle of negative ThoughtsHow to Break the cycle of negative Thoughts
How to Break the cycle of negative Thoughts
 
Incoming and Outgoing Shipments in 2 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 2 STEPS Using Odoo 17Incoming and Outgoing Shipments in 2 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 2 STEPS Using Odoo 17
 
Advances in production technology of Grapes.pdf
Advances in production technology of Grapes.pdfAdvances in production technology of Grapes.pdf
Advances in production technology of Grapes.pdf
 
Sha'Carri Richardson Presentation 202345
Sha'Carri Richardson Presentation 202345Sha'Carri Richardson Presentation 202345
Sha'Carri Richardson Presentation 202345
 
Instructions for Submissions thorugh G- Classroom.pptx
Instructions for Submissions thorugh G- Classroom.pptxInstructions for Submissions thorugh G- Classroom.pptx
Instructions for Submissions thorugh G- Classroom.pptx
 
50 ĐỀ LUYỆN THI IOE LỚP 9 - NĂM HỌC 2022-2023 (CÓ LINK HÌNH, FILE AUDIO VÀ ĐÁ...
50 ĐỀ LUYỆN THI IOE LỚP 9 - NĂM HỌC 2022-2023 (CÓ LINK HÌNH, FILE AUDIO VÀ ĐÁ...50 ĐỀ LUYỆN THI IOE LỚP 9 - NĂM HỌC 2022-2023 (CÓ LINK HÌNH, FILE AUDIO VÀ ĐÁ...
50 ĐỀ LUYỆN THI IOE LỚP 9 - NĂM HỌC 2022-2023 (CÓ LINK HÌNH, FILE AUDIO VÀ ĐÁ...
 
How to Split Bills in the Odoo 17 POS Module
How to Split Bills in the Odoo 17 POS ModuleHow to Split Bills in the Odoo 17 POS Module
How to Split Bills in the Odoo 17 POS Module
 
The Benefits and Challenges of Open Educational Resources
The Benefits and Challenges of Open Educational ResourcesThe Benefits and Challenges of Open Educational Resources
The Benefits and Challenges of Open Educational Resources
 
NCERT Solutions Power Sharing Class 10 Notes pdf
NCERT Solutions Power Sharing Class 10 Notes pdfNCERT Solutions Power Sharing Class 10 Notes pdf
NCERT Solutions Power Sharing Class 10 Notes pdf
 

Red black 2

  • 1. Red-Black Trees—Again • rank(x) = # black pointers on path from x to an external node. • Same as #black nodes (excluding x) from x to an external node. • rank(external node) = 0.
  • 2. An Example 3 10 2 2 7 40 1 3 1 8 2 30 1 45 1 1 1 35 1 60 1 1 5 20 0 0 0 1 25 0 0 0 0 0 0 0 0 0 0 0
  • 3. Properties Of rank(x) • rank(x) = 0 for x an external node. • rank(x) = 1 for x parent of external node. • p(x) exists => rank(x) <= rank(p(x)) <= rank(x) + 1. • g(x) exists => rank(x) < rank(g(x)).
  • 4. Red-Black Tree A binary search tree is a red-black tree iff integer ranks can be assigned to its nodes so as to satisfy the stated 4 properties of rank.
  • 5. Relationship Between rank() And Color • (p(x),x) is a red pointer iff rank(x) = rank(p(x)). • (p(x),x) is a black pointer iff rank(x) = rank(p(x)) – 1. • Red node iff pointer from parent is red. • Root is black. • Other nodes are black iff pointer from parent is black. • Given rank(root) and node/pointer colors, remaining ranks may be computed on way down.
  • 6. rank(root) • Height <= 2 * rank(root). • No external nodes at levels 1, 2, …, rank(root).  So, #nodes >= 1 <= i <= rank(root) 2i -1 = 2 rank(root) – 1.  So, rank(root) <= log2(n+1). • So, height(root) <= 2log2(n+1).
  • 7. Join(S,m,B) • Input  Dictionary S of pairs with small keys.  Dictionary B of pairs with big keys.  An additional pair m.  All keys in S are smaller than m.key.  All keys in B are bigger than m.key. • Output  A dictionary that contains all pairs in S and B plus the pair m.  Dictionaries S and B may be destroyed.
  • 8. Join Binary Search Trees m S B • O(1) time.
  • 9. Join Red-black Trees • When rank(S) = rank(B), use binary search tree method. m S B • rank(root) = rank(S) + 1 = rank(B) + 1.
  • 10. rank(S) > rank(B) • Follow right child pointers from root of S to first node x whose rank equals rank(B). p(x) p(x) m S x x B a b a b
  • 11. rank(S) > rank(B) • If there are now 2 consecutive red pointers/nodes, perform bottom-up rebalancing beginning at m. • O(rank(S) – rank(B)). p(x) p(x) m S x x B a b a b
  • 12. rank(S) < rank(B) • Follow left child pointers from root of B to first node x whose rank equals rank(B). • Similar to case when rank(S) > rank(B).
  • 13. Split(k) • Inverse of join. • Obtain  S … dictionary of pairs with key < k.  B … dictionary of pairs with key > k.  m … pair with key = k (if present).
  • 14. Split A Binary Search Tree A S B a B C b c D E d e m f g
  • 15. Split A Binary Search Tree S B B A C b a c D E d e m f g
  • 16. Split A Binary Search Tree S B A B C a b c D E d e m f g
  • 17. Split A Binary Search Tree S B A B a C b D c E d e m f g
  • 18. Split A Binary Search Tree S B A B a C D b c d E e m f g
  • 19. Split A Binary Search Tree S B A B a C D b c E d e m f g
  • 20. Split A Binary Search Tree S B A B a C D b c E g d e f m
  • 21. Split A Red-Black Tree • Previous strategy does not split a red-black tree into two red-black trees. • Must do a search for m followed by a traceback to the root. • During the traceback use the join operation to construct S and B.
  • 22. Split A Red-Black Tree A S=f B=g a B C b c D E d e m f g
  • 23. Split A Red-Black Tree A S=f B=g a B C b c D E d e
  • 24. Split A Red-Black Tree A S=f B=g a B S = join(e, E, S) C b c D E d e
  • 25. Split A Red-Black Tree A S=f B =g a B S = join(e, E, S) C b B = join(B, D, d) c D d
  • 26. Split A Red-Black Tree A S=f B =g a B S = join(e, E, S) C b B = join(B, D, d) c S = join(c, C, S)
  • 27. Split A Red-Black Tree A S=f B =g a B S = join(e, E, S) b B = join(B, D, d) S = join(c, C, S) B = join(B, B, b)
  • 28. Split A Red-Black Tree A S=f B =g a S = join(e, E, S) B = join(B, D, d) S = join(c, C, S) B = join(B, B, b) S = join(a, A, S)
  • 29. Complexity Of Split • O(log n) • See text.