Download presentation
Presentation is loading. Please wait.
Published byWillis Alexander Modified over 8 years ago
1
CSC 213 – Large Scale Programming
2
Announcements Tuesday, May 10 from 10:15 – 12:15 in OM200 CSC213 final exam has been scheduled: Tuesday, May 10 from 10:15 – 12:15 in OM200 Thursday, May 12 from 2:45 – 3:45 in OM119 Lab mastery exam also on the schedule Thursday, May 12 from 2:45 – 3:45 in OM119
3
Problems with Search Trees Great at organizing information for searching Processing is maintained at consistent O (log n ) time But sucks at locality (both spatial and temporal) Each node contains only 1 piece of data Jumps to child after using that piece of data All of these references means nodes spaced randomly
4
Big Search Trees Excellent way to test roommates system
5
Big Search Trees roommates Excellent way to test roommates system
6
Big Search Trees roommates Excellent way to test roommates system
7
(a,b) Trees to the Rescue! Real solution to frequent hikes to Germany Linux & MacOS to track files & directories MySQL & other databases use this to hold all the data Found in many other places where paging occurs Simple rules define working of any ( a, b ) tree Grows upward so that all leaves found at same level At least a children for each internal node Every internal node has at most b children
8
What is “the BTree?” Common multi-way tree implementation Describe B-Tree using order (“BTree of order m ”) m / 2 to m children per internal node Root node can have m or fewer elements Many variants exist to improve some failing Each variant is specialized for some niche use Minor differences only between each variant Describes the most basic B-Tree during lecture
9
BTree Order Select order minimizing paging when created Elements & references to kids in full node fills page Nodes have at least m / 2 elements, even at their smallest In memory guarantees each page is at least 50% full How many pages touched by each operation?
10
Removal from BTree Swap element with successor in parent of a leaf Process is similar to removal in (2,4) node If under m / 2 elements in node after the removal See if can move element from sibling to parent & steal element from parent Else, merge with sibling & steal element from parent But this might propagate underflow to parent node!
11
Removal from BTree Swap element with successor in parent of a leaf Process is similar to removal in (2,4) node If under m / 2 elements in node after the removal See if can move element from sibling to parent & steal element from parent Else, merge with sibling & steal element from parent But this might propagate underflow to parent node! Remind anyone else of another structure?
12
( 2, 4 ) Tree Is An ( a, b ) Tree Grows upward so all leaves found at same level At least a children for each internal node Every internal node has at most b children
13
Underflow and Fusion Entry deletion may cause underflow Node less than ½ full after removing the Entry Choice of solution depends on situation Example: remove(15) 15 9 14 10 112 5 7
14
Underflow and Fusion Entry deletion may cause underflow Node less than ½ full after removing the Entry Choice of solution depends on situation Example: remove(15) 15 9 14 2 5 710 11
15
Underflow and Fusion Entry deletion may cause underflow Node less than ½ full after removing the Entry Choice of solution depends on situation Example: remove(15) 15 9 14 2 5 710 11
16
Underflow and Fusion Entry deletion may cause underflow Node less than ½ full after removing the Entry Choice of solution depends on situation Example: remove(15) 9 14 2 5 710 11
17
Case 1: Transfer Adjacent sibling Node has Entry to lend Steal parent’s Entry closest to underfilled node Prevent loneliness & promote sibling’s Entry No further processing needed in this case Example: remove(15) 9 14 2 5 710 11
18
Case 1: Transfer Adjacent sibling Node has Entry to lend Steal parent’s Entry closest to underfilled node Prevent loneliness & promote sibling’s Entry No further processing needed in this case Example: remove(15) 14 9 2 5 710 11
19
Case 1: Transfer Adjacent sibling Node has Entry to lend Steal parent’s Entry closest to underfilled node Prevent loneliness & promote sibling’s Entry No further processing needed in this case Example: remove(15) 14 9 2 5 710 11
20
Case 1: Transfer Adjacent sibling Node has Entry to lend Steal parent’s Entry closest to underfilled node Prevent loneliness & promote sibling’s Entry No further processing needed in this case Example: remove(15) 14 9 11 2 5 710
21
Case 1: Transfer Adjacent sibling Node has Entry to lend Steal parent’s Entry closest to underfilled node Prevent loneliness & promote sibling’s Entry No further processing needed in this case Example: remove(15) 14 9 11 2 5 710
22
Case 2: Fusion Emptied node has only ½ filled siblings Merge node & sibling into single nearly filled node Look to parent & steal Entry between siblings May propagate underflow to parent! Example: remove(14) Mom 14 9 11 2 5 710
23
Case 2: Fusion Emptied node has only ½ filled siblings Merge node & sibling into single nearly filled node Look to parent & steal Entry between siblings May propagate underflow to parent! Example: remove(14) Mom 9 11 102 5 7
24
Case 2: Fusion Emptied node has only ½ filled siblings Merge node & sibling into single nearly filled node Look to parent & steal Entry between siblings May propagate underflow to parent! Example: remove(14) Mom 9 11 102 5 7
25
Case 2: Fusion Emptied node has only ½ filled siblings Merge node & sibling into single nearly filled node Look to parent & steal Entry between siblings May propagate underflow to parent! Example: remove(14) Mom 9 10 112 5 7
26
Case 2: Fusion Emptied node has only ½ filled siblings Merge node & sibling into single nearly filled node Look to parent & steal Entry between siblings May propagate underflow to parent! Example: remove(14) Mom 9 10 112 5 7
27
Case 2: Fusion Emptied node has only ½ filled siblings Merge node & sibling into single nearly filled node Look to parent & steal Entry between siblings May propagate underflow to parent! Example: remove(14) Mom 9 10 112 5 7
28
In Case Of Overflow… If addition overfills node, split into 2 new nodes ½ of the Entry s (& children) for the new nodes Splitting now makes sure nodes at least ½ full! 15 24 1218 27 30 32 35
29
In Case Of Overflow… If addition overfills node, split into 2 new nodes ½ of the Entry s (& children) for the new nodes Splitting now makes sure nodes at least ½ full! 15 24 1218 27 30 32 35 12 27 30 18 35
30
In Case Of Overflow… If addition overfills node, split into 2 new nodes ½ of the Entry s (& children) for the new nodes Splitting now makes sure nodes at least ½ full! 15 24 1218 27 30 32 35 1218 35 15 24 32 27 30
31
In Case Of Overflow… If addition overfills node, split into 2 new nodes ½ of the Entry s (& children) for the new nodes Splitting now makes sure nodes at least ½ full! Check parent for overflow, since added 1 Entry 15 24 1218 27 30 32 35 121835 15 24 32 27 30
32
For Next Lecture Remember, must submit program #3 on Friday Should start today and work through the week 2 nd best debugging technique? Taking a (short) break! Weekly activity due tomorrow Come and ask me any questions you may have! Final problem day in class on Wednesday At end of lab time Friday, lab phase #4 due
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.