multi way search trees
play

Multi-way Search Trees Each internal node of a multi-way search tree - PDF document

(2,4) T REES Search Trees (but not binary) also known as 2-4, 2-3-4 trees very important as basis for Red-Black trees (so pay attention!) (2,4) Trees 1 Multi-way Search Trees Each internal node of a multi-way search tree T :


  1. (2,4) T REES • Search Trees (but not binary) • also known as 2-4, 2-3-4 trees • very important as basis for Red-Black trees (so pay attention!) (2,4) Trees 1

  2. Multi-way Search Trees • Each internal node of a multi-way search tree T : - has at least two children - stores a collection of items of the form ( k , x ), where k is a key and x is an element - contains d - 1 items, where d is the number of children ∞ ∞ - “contains” 2 pseudo-items: k 0 = – , k d = • Children of each internal node are “between” items - all keys in the subtree rooted at the child fall between keys of those items • External nodes are just placeholders (2,4) Trees 2

  3. Multi-way Searching • Similar to binary searching < • If search key s k 1 , search the leftmost child > • If s k d , search the rightmost child – 1 > • That’s it in a binary tree; what about if d 2 ? • Find two keys k i and k i between which s falls, – 1 and search the child v i . Searching 22 for s = 8 Searching for s = 12 5 10 25 27 3 4 6 8 14 23 24 11 13 17 18 19 20 21 Not found! • What would an in-order traversal look like? (2,4) Trees 3

  4. (2,4) Trees • At most 4 children • All external nodes have same depth ( ) • Height h of (2,4) tree is O log n . • How is this fact useful in searching? 12 5 10 15 11 17 3 4 6 8 13 14 (2,4) Trees 4

  5. (2,4) Insertion • Always maintain depth condition • Add elements only to existing nodes Insert 4 Insert 6 Empty 4 6 4 tree Insert 12 Insert 15 ? 4 6 12 • What if that makes a node too big? - overflow • Must perform a split operation - replace node v with two nodes v ' and v '' - v ' gets the first two keys - v '' gets the last key - send the other key up the tree - if v is root, create new root with third key - otherwise just add third key to parent • Much clearer with a few pictures... (2,4) Trees 5

  6. (2,4) Insertion (cont.) Insert 15 12 12 4 6 12 15 4 6 15 4 6 15 Insert 3 12 12 Insert 5 3 15 5 15 4 6 3 4 6 12 5 12 5 15 3 4 6 3 4 6 15 • Tree always grows from the top, maintaining balance • What if parent is full? (2,4) Trees 6

  7. (2,4) Insertion (cont.) • Do the same thing: Insert 17 5 10 12 3 4 6 8 11 13 14 15 17 5 10 12 15 3 4 6 8 11 13 14 17 12 5 10 15 3 4 6 8 11 13 14 17 • Overflow cascade all the way up to the root ( ) - still at most O log n (2,4) Trees 7

  8. (2,4) Deletion • A little trickier • First of all, find the key - simple multi-way search • Then, reduce to the case where deletable item is at the bottom of the tree - Find item which precedes it in in-order traversal - Swap them • Remove the item Delete 13 11 6 15 13 17 5 8 10 14 • Easy, right? • ...but what about removing from 2-nodes? (2,4) Trees 8

  9. (2,4) Deletion (cont.) • Not enough items in the node - underflow • Pull an item from the parent, replace it with an item from a sibling - called transfer 5 10 Delete 4 4 6 8 11 u 10 5 6 v w 11 8 • Still not good enough! What happens if siblings are 2-nodes? • Could we just pull one item from the parent? - too many children • But maybe... (2,4) Trees 9

  10. (2,4) Deletion (cont.) • We know that the node’s sibling is just a 2-node • So we fuse them into one - after stealing an item from the parent, of course Delete 12 6 10 12 8 5 u 6 10 v 8 5 u 6 5 8 10 • Last special case, I promise: what if the parent was a 2-node? (2,4) Trees 10

  11. (2,4) Deletion (cont.) • Underflow can cascade up the tree, too. Delete 14 11 15 6 14 5 8 10 17 11 u 6 15 v 17 5 8 10 11 u 6 5 8 10 15 17 6 11 5 8 10 15 17 (2,4) Trees 11

  12. (2,4) Conclusion ( ) • The height of a (2,4) tree is O log n . ( ) • Split, transfer, and fusion each take O 1 . ( ) • Search, insertion and deletion each take O log n . • Why are we doing this? - (2,4) trees are fun! Why else would we do it? - Well, there’s another reason, too. - They’re pretty fundamental to the idea of Red-Black trees as well. - And you’re covering Red-Black trees on Monday. - Perhaps more importantly, your next project is a Red-Black tree. • Have a nice weekend! (2,4) Trees 12

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