DOC PREVIEW
UMBC CMSC 341 - BTrees

This preview shows page 1-2-16-17-18-33-34 out of 34 pages.

Save
View full document
Premium Document
Do you want full access? Go Premium and unlock all 34 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

CMSC 341 B Trees D Frey with apologies to Tom Anastasio Large Tree Tailored toward applications where tree doesn t fit in memory operations much faster than disk accesses want to limit levels of tree because each new level requires a disk access keep root and top level in memory Textbook Errors Please check the textbook web page for typos and other errors In particular the section on B Trees 4 7 has a couple of typos pages 166 and 167 Page 166 numbered item 5 right margin should be and L data items not L children Page 167 way down left margin change and the first level to and the next level An alternative to BSTs Up until now we assumed that each node in a BST stored the data What about having the data stored only in the leaves The internal nodes just guide our search to the leaf which contains the data we want We ll restrict this discussion of such trees to those in which all leaves are at the same level 10 16 7 4 1 9 4 7 14 9 10 19 14 16 Figure 1 A BST with data stored in the leaves 19 Observations Store data only at leaves all leaves at same level interior and exterior nodes have different structure interior nodes store one key and two subtree pointers all search paths have same length lg n can store multiple data elements in a leaf M Way Trees A generalization of the previous BST model each interior node has M subtrees pointers and M 1 keys the previous BST would be called a 2 way tree or M way tree of order 2 as M increases height decreases lgM n perfect M way tree of height h has Mh leaves An M way tree of order 3 Figure 2 next page shows the same data as figure 1 stored in an M way tree of order 3 In this example M 3 and h 2 so the tree can support 9 leaves although it contains only 8 One way to look at the reduced path length with increasing M is that the number of nodes to be visited in searching for a leaf is smaller for large M We ll see that when data is stored on the disk each node visited requires a disk access so reducing the nodes visited is essential 4 1 7 4 7 9 9 16 10 14 10 19 14 16 Figure 2 An M Way tree of order 3 19 Searching in an M way tree Different from standard BST search search always terminates at a leaf node might need to scan more than one element at a leaf might need to scan more than one key at an interior node Trade offs tree height decreases as M increases computation at each node during search increases as M increases Searching an M way tree Search MWayNode v DataType element bool foundIt if v NULL return failure if v is a leaf search the list of values looking for element if found return success otherwise return failure else if v is an interior node search the keys to find which subtree element is in recursively search the subtree For real code see Dr Anastasio s postscript notes Search Algorithm Traversing the M way Tree Everything in this subtree is smaller than this key 4 1 7 4 7 9 9 16 10 14 10 19 14 16 19 In any interior node find the first key search item and traverse the link to the left of that key Search for any item the last key in the subtree pointed to by the rightmost link Continue until search reaches a leaf 22 6 2 4 12 6 12 8 14 10 16 18 26 32 18 22 26 32 19 24 28 34 20 30 36 48 42 54 36 42 38 44 40 46 48 54 50 56 52 Figure 3 searching in an M way tree of order 4 Is it worth it Is it worthwhile to reduce the height of the search tree by letting M increase Although the number of nodes visited decreases the amount of computation at each node increases Where s the payoff An example Consider storing 107 items in a balanced BST and in an M way tree of order 10 The height of the BST will be lg 107 24 The height of the M Way tree will be log 107 7 assuming that we store just 1 record per leaf However in the BST just one comparison will be done at each interior node but in the M Way tree 9 will be done worst case How can this be worth the price Only if it somehow takes longer to descend the tree than it does to do the extra computation This is exactly the situation when the nodes are stored externally e g on disk Compared to disk access time the time for extra computation is insignificant We can reduce the number of accesses by sizing the M way tree to match the disk block and record size See Weiss text section 4 7 page 165 for an example A generic M Way Tree Node template class Ktype class Dtype class MWayNode public constructors destructor accessors mutators private bool isLeaf true if node is a leaf int m the order of the node int nKeys nr of actual keys used Ktype keys array of keys size m 1 MWayNode subtrees array of pts size m int nElems nr possible elements in leaf List Dtype data data storage if leaf B Tree Definition A B Tree of order M is an M Way tree with the following constraints The root is either a leaf or has between 2 and M subtrees All interior node except maybe the root have between M 2 and M subtrees I e each interior node is at least half full All leaves are at the same level A leaf must store between L 2 and L data elements where L is a fixed constant 1 I e each leaf is at least half full except when the tree has fewer than L 2 elements A B Tree example The following figure also figure 3 shows a BTree with M 4 and L 3 The root node can have between 2 and M 4 subtrees Each other interior node can have between M 2 4 2 2 and M 4 subtrees and up to M 1 3 keys Each exterior node leaf can hold between L 2 3 2 2 and L 3 data elements 22 6 2 4 12 6 12 8 14 10 16 18 26 32 18 22 26 32 19 24 28 34 20 30 36 48 42 54 36 42 38 44 40 46 48 54 50 56 52 Figure 4 A B Tree with M 4 and L 3 Designing a B Tree Recall that M way trees and therefore B trees are often used when there is too much data to fit in memory Therefore each node and leaf access costs one disk access When designing …


View Full Document

UMBC CMSC 341 - BTrees

Download BTrees
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view BTrees and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view BTrees and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?