1 / 63

Multi-Way search Trees

Multi-Way search Trees. 2-3 Trees: a. Nodes may contain 1 or 2 items. b. A node with k items has k + 1 children c. All leaves are on same level. Example. A 2-3 tree storing 18 items. 20 80. 5. 30 70. 90 100. 25. 40 50. 75. 85. 110 120. 2 4. 10. 95. Updating.

Download Presentation

Multi-Way search Trees

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Multi-Way search Trees • 2-3 Trees: a. Nodes may contain 1 or 2 items. b. A node with k items has k + 1 children c. All leaves are on same level.

  2. Example • A 2-3 tree storing 18 items. 20 80 5 30 70 90 100 25 40 50 75 85 110 120 2 4 10 95

  3. Updating • Insertion: • Find the appropriate leaf. If there is only one item, just add to leaf. • Insert(23); Insert(15) • If no room, move middle item to parent and split remaining two item among two children. • Insert(3);

  4. Insertion • Insert(3); 20 80 5 30 70 90 100 40 50 75 85 110 120 2 3 4 10 15 23 25 95

  5. Insert(3); • In mid air… 20 80 5 30 70 90 100 3 23 25 40 50 75 85 110 120 2 10 15 95 4

  6. Done…. 20 80 3 5 30 70 90 100 4 23 25 40 50 75 85 110 120 2 10 15 95

  7. Tree grows at the root… • Insert(45); 20 80 3 5 30 70 90 100 4 25 40 45 50 75 85 110 120 2 10 95

  8. New root: 45 20 80 3 5 30 70 90 100 4 25 40 50 75 85 110 120 2 10 95

  9. Delete • If item is not in a leaf exchange with in-order successor. • If leaf has another item, remove item. • Examples: Remove(110); • (Insert(110); Remove(100); ) • If leaf has only one item but sibling has two items: redistribute items. Remove(80);

  10. Remove(80); • Step 1: Exchange 80 with in-order successor. 45 20 85 3 5 30 70 90 100 110 120 4 25 40 50 75 80 2 10 95

  11. Remove(80); • Redistribute 45 20 85 3 5 30 70 95 110 120 4 25 40 50 75 90 2 10 100

  12. Some more removals… • Remove(70); Swap(70, 75); Remove(70); “Merge” Empty node with sibling; Join parent with node; Now every node has k+1 children except that one node has 0 items and one child. Sibling can spare an item: redistribute. 110

  13. Delete(70) 45 20 85 3 5 30 75 95 110 120 4 25 40 50 90 2 10 100

  14. New tree: • Delete(75) will “shrink” the tree. 45 20 95 3 5 30 75 110 120 4 25 40 50 90 100 2 10

  15. Details • 1. Swap(75, 90) //inorder successor • 2. Remove(75) //empty node created • 3. Merge with sibling • 4. Drop item from parent// (50,90) empty Parent • 5. Merge empty node with sibling, drop item from parent (95) • 6. Parent empty, merge with sibling drop item. Parent (root) empty, remove root.

  16. “Shorter” 2-3 Tree 20 45 3 5 30 95 110 50 90 120 4 25 40 100 2 10

  17. Deletion Summary • If item k is present but not in a leaf, swap with inorder successor; • Delete item k from leaf L. • If L has no items: Fix(L); • Fix(Node N); • //All nodes have k items and k+1 children • // A node with 0 items and 1 child is possible, it will have to be fixed.

  18. Deletion (continued) • If N is the root, delete it and return its child as the new root. • Example: Delete(8); 5 5 1 2 3 3 3 5 3 8 Return 3 5

  19. Deletion (Continued) • If a sibling S of N has 2 items distribute items among N, S and the parent P; if N is internal, move the appropriate child from S to N. • Else bring an item from P into S; • If N is internal, make its (single) child the child of S; remove N. • If P has no items Fix(P) (recursive call)

  20. (2,4) Trees • Size Property: nodes may have 1,2,3 items. • Every node, except leaves has size+1 children. • Depth property: all leaves have the same depth. • Insertion: If during the search for the leaf you encounter a “full” node, split it.

  21. (2,4) Tree 3 8 10 45 60 70 90 100 50 55 25

  22. Insert(38); Insert(38); 45 10 60 70 90 100 3 8 50 55 25 38

  23. Insert(105) • Insert(105); 45 10 60 90 3 8 50 55 70 100 105 25 38

  24. Removal • As with BS trees, we may place the node to be removed in a leaf. • If the leaf v has another item, done. • If not, we have an UNDERFLOW. • If a sibling of v has 2 or 3 items, transfer an item. • If v has 2 or 3 siblings we perform a transfer

  25. Removal • If v has only one sibling with a single item we drop an item from the parent to the sibling, remove v. This may create an underflow at the parent. We “percolate” up the underflow. It may reach the root in which case the root will be discarded and the tree will “shrink”.

  26. Delete(15) 35 20 60 6 15 40 50 70 80 90

  27. Delete(15) 35 20 60 6 40 50 70 80 90

  28. Continued • Drop item from parent 35 60 6 20 40 50 70 80 90

  29. Fuse 35 60 6 20 40 50 70 80 90

  30. Drop item from root • Remove root, return the child. 35 60 6 20 40 50 70 80 90

  31. Summary • Both 2-3 tress and 2-4 trees make it very easy to maintain balance. • Insertion and deletion easier for 2-4 tree. • Cost is waste of space in each node. Also extra comparison inside each node. • Does not “extend” binary trees.

  32. Red-Black Trees • Root property: Root is BLACK. • External Property: Every external node is BLACK • Internal property: Children of a RED node are BLACK. • Depth property: All external nodes have the same BLACK depth.

  33. Insertion RedBlack

  34. Red Black Trees, Insertion • Find proper external node. • Insert and color node red. • No black depth violation but may violate the red-black parent-child relationship. • Let: z be the inserted node, v its parent and u its grandparent. If v is red then u must be black.

  35. Color adjustments. • Red child, red parent. Parent has a black sibling. a b u w v z Vl Zr Zl

  36. Rotation • Z-middle key. Black height does not change! No more red-red. a b z u v w Zr Zl Vl

  37. Color adjustment II a b u w v Vr z Zr Zl

  38. Rotation II a b v u z w Zl Zr Vr

  39. Recoloring • Red child, red parent. Parent has a red sibling. a b u w v z Vl Zr

  40. Recoloring • Red-red may move up… a b u w v z Vl Zr Zl

  41. Red Black Tree • Insert 10 – root 10

  42. Red Black Tree • Insert 10 – root 10

  43. Red Black Tree • Insert 85 10 85

  44. Red Black Tree • Insert 15 10 85 15

  45. Red Black Tree • Rotate – Change colors 15 10 85

  46. Red Black Tree • Insert 70 15 10 85 70

  47. Red Black Tree • Change Color 15 10 85 70

  48. Red Black Tree • Insert 20 15 10 85 70 20

  49. Red Black Tree • Rotate – Change Color 15 10 70 85 20

  50. Red Black Tree • Insert 60 15 10 70 85 20 60

More Related