2 3 4 trees and red black trees
play

2-3-4 Trees and Red- Black Trees 204 erm CS 16: Balanced Trees - PDF document

CS 16: Balanced Trees 2-3-4 Trees and Red- Black Trees 204 erm CS 16: Balanced Trees 2-3-4 Trees Revealed Nodes store 1, 2, or 3 keys and have 2, 3, or 4 children, respectively All leaves have the same depth k n r b e h n r b e


  1. CS 16: Balanced Trees 2-3-4 Trees and Red- Black Trees 204 erm

  2. CS 16: Balanced Trees 2-3-4 Trees Revealed • Nodes store 1, 2, or 3 keys and have 2, 3, or 4 children, respectively • All leaves have the same depth k n r b e h n r b e h a f g l m p s x c d i 1 ( ) ≤ ≤ ( ) - - - log + 1 height log + 1 N N 2 205 erm

  3. CS 16: Balanced Trees 2-3-4 Tree Nodes • Introduction of nodes with more than 1 key, and more than 2 children a 2-node: • same as a binary node < a > a a b 3-node: < a > b • 2 keys, 3 links >a < b a b c 4-node: • 3 keys, 4 links < a >c >a >b < b < c 206 erm

  4. CS 16: Balanced Trees Why 2-3-4? • Why not minimize height by maximizing children in a “d-tree”? • Let each node have d children so that we get O(log d N) search time! Right? log d N = log N/log d • That means if d = N 1/2 , we get a height of 2 • However, searching out the correct child on each level requires O(log N 1/2 ) by binary search • 2 log N 1/2 = O(log N) which is not as good as we had hoped for! • 2-3-4-trees will guarantee O(log N) height using only 2, 3, or 4 children per node 207 erm

  5. CS 16: Balanced Trees Insertion into 2-3-4 Trees • Insert the new key at the lowest internal node reached in the search • 2-node becomes 3-node g d g d • 3-node becomes 4-node d f g d g f • What about a 4-node ? • We can’t insert another key! 208 erm

  6. CS 16: Balanced Trees Top Down Insertion • In our way down the tree, whenever we reach a 4-node , we break it up into two 2- nodes , and move the middle element up into the parent node e e f n n d f g g d • Now we can perform the f n insertion using one of the previous two cases • Since we follow this g method from the root down d e to the leaf, it is called top down insertion 209 erm

  7. CS 16: Balanced Trees Splitting the Tree As we travel down the tree, if we encounter any 4-node we will break it up into 2-nodes . This guarantees that we will never have the problem of inserting the middle element of a former 4- node into its parent 4-node . g c n t Whoa, cowboy p r x a f i l g n c t x p r a f i l 210 erm

  8. CS 16: Balanced Trees g n c t x p r a f i l n c t g Whoa, cowboy x p r a f i l 211 erm

  9. CS 16: Balanced Trees n c t g Whoa, cowboy x p r a f i l n g c i t x p r a l f n c i t f g p r a l x 212 erm

  10. CS 16: Balanced Trees Time Complexity of Insertion in 2-3-4 Trees Time complexity: • A search visits O(log N) nodes • An insertion requires O(log N) node splits • Each node split takes constant time • Hence, operations Search and Insert each take time O(log N) Notes: • Instead of doing splits top-down, we can perform them bottom-up starting at the in- sertion node, and only when needed. This is called bottom-up insertion. • A deletion can be performed by fusing nodes (inverse of splitting), and takes O(log N) time 213 erm

  11. CS 16: Balanced Trees Beyond 2-3-4 Trees What do we know about 2-3-4 Trees? • Balanced Siskel • O(log N) search time Ebert • Different node structures Roberto Can we get 2-3-4 tree advantages in a binary tree format??? Welcome to the world of Red-Black Trees!!! 214 erm

  12. CS 16: Balanced Trees Red-Black Tree A red-black tree is a binary search tree with the following properties: • edges are colored red or black • no two consecutive red edges on any root-leaf path • same number of black edges on any root-leaf path ( = black height of the tree) • edges connecting leaves are black Black Red Edge Edge 215 erm

  13. CS 16: Balanced Trees 2-3-4 Tree Evolution Note how 2-3-4 trees relate to red-black trees 2-3-4 Red-Black or Now we see red-black trees are just a way of representing 2-3-4 trees! 216 erm

  14. CS 16: Balanced Trees More Red-Black Tree Properties N # of internal nodes # leaves ( = N + 1) L H height B black height Property 1: 2 B ≤ N + 1 ≤ 4 B 1 ( ) ≤ ≤ ( ) Property 2: - - - log N + 1 B log N + 1 2 ( ) ≤ ≤ ( ) Property 3: log N + 1 H 2 log N + 1 This implies that searches take time O(logN)! 217 erm

  15. CS 16: Balanced Trees Insertion into Red-Black Trees 1.Perform a standard search to find the leaf where the key should be added 2.Replace the leaf with an internal node with the new key 3.Color the incoming edge of the new node red 4.Add two new leaves, and color their incoming edges black 5.If the parent had an incoming red edge, we now have two consecutive red edges! We must reorganize tree to remove that violation. What must be done depends on the sibling of the parent. R R G G 218 erm

  16. CS 16: Balanced Trees Insertion - Plain and Simple Let: n be the new node p be its parent g be its grandparent Case 1: Incoming edge of p is black No violation g STOP! p n Pretty easy, huh? Well... it gets messier... 219 erm

  17. CS 16: Balanced Trees Restructuring Case 2: Incoming edge of p is red, and its sibling is black Uh oh! g Much p Better! p n g n We call this a “ right rotation ” • No further work on tree is necessary • Inorder remains unchanged • Tree becomes more balanced • No two consecutive red edges! 220 erm

  18. CS 16: Balanced Trees More Rotations Similar to a right rotation, we can do a “ left rotation ”... g p p g n n Simple, huh? 221 erm

  19. CS 16: Balanced Trees Double Rotations What if the new node is between its parent and grandparent in the inorder sequence? We must perform a “double rotation” (which is no more difficult than a “single” one) g n p g p n This would be called a “left-right double rotation” 222 erm

  20. CS 16: Balanced Trees Last of the Rotations And this would be called a “right-left double rotation” g n p g p n 223 erm

  21. CS 16: Balanced Trees Bottom-Up Rebalancing Case 3: Incoming edge of p is red and its sibling is also red g g p p n n • We call this a “ promotion ” • Note how the black depth remains un- changed for all of the descendants of g • This process will continue upward beyond g if necessary: rename g as n and repeat. 224 erm

  22. CS 16: Balanced Trees Summary of Insertion • If two red edges are present, we do either • a restructuring (with a simple or double rotation) and stop , or • a promotion and continue • A restructuring takes constant time and is performed at most once. It reorganizes an off-balanced section of the tree. • Promotions may continue up the tree and are executed O(log N) times. • The time complexity of an insertion is O(logN). 225 erm

  23. CS 16: Balanced Trees An Example Start by inserting “REDSOX” into an empty tree E D R S O X Now, let’s insert “C U B S”... 226 erm

  24. CS 16: Balanced Trees A Cool Example C E D R S O X E D R C S O X 227 erm

  25. CS 16: Balanced Trees An Unbelievable Example E U D R S C O X E D R S C O X Oh No! What should we do? U 228 erm

  26. CS 16: Balanced Trees E D R S C O X Double Rotation U E D R C O U S X 229 erm

  27. CS 16: Balanced Trees A Beautiful Example E B D R C O U S X E D R What now? C O U S X B 230 erm

  28. CS 16: Balanced Trees E D R Rotation C O U S X B E C R B O U D S X 231 erm

  29. CS 16: Balanced Trees A Super Example E S C R B O U D S X E C R B O U D We could’ve Holy Consecutive placed it on S X Red Edges, Batman! either side S 232 erm

  30. CS 16: Balanced Trees E C R B O U D Use the Bat-Promoter!! S X S E BIFF! C R B O U D S X S 233 erm

  31. CS 16: Balanced Trees E Rotation C R B O U D S X S R The SUN lab and Red- Bat trees are safe... U E ...for now!!! C S X O B D S 234 erm

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend