About the Book
Please note that the content of this book primarily consists of articles available from Wikipedia or other free sources online. Pages: 95. Chapters: (a, b)-tree, AA tree, Abstract syntax tree, Adaptive k-d tree, And or tree, B-tree, B-trie, Ball tree, Binary space partitioning, BK-tree, Bounding interval hierarchy, Branching factor, Calkin Wilf tree, Cover tree, Dancing tree, Day Stout Warren algorithm, Dendrogram, Dialog tree, Doubly chained tree, Doubly logarithmic tree, Embedded Zerotrees of Wavelet transforms, Enfilade (Xanadu), Expectiminimax tree, Exponential tree, Fenwick tree, Figurative system of human knowledge, Finger tree, Fusion tree, Generalized suffix tree, GiST, Hash tree, Hash trie, Htree, Hyperbolic tree, Hypertree, Implicit k-d tree, Infinite tree automaton, Interval tree, Left-leaning red-black tree, Leftist tree, Left rotation, Linear octree, Link/cut tree, M-tree, Metric tree, Min/max kd-tree, Newick format, Node (computer science), Parse tree, Pebble automaton, Phylogenetic tree, Polychotomous key, PQ tree, Prediction Suffix Tree, Quadtree, Radial tree, Radix tree, Range tree, Rooted binary tree, Rose Tree, Segment tree, Self-balancing binary search tree, Semantic resolution tree, Sentinel node, Sentinel value, Split (phylogenetics), SPQR tree, Stern Brocot tree, T-theory, Ternary search tree, Ternary tree, Trace tree, Tree (data structure), Tree homomorphism, Tree rearrangement, Tree structure, Tree traversal, Tree walking automaton, Trinomial tree, UB-tree, Van Emde Boas tree, Vp-tree, Wavelet Tree, X-fast trie, Y-fast trie. Excerpt: In computer science, a B-tree is a tree data structure that keeps data sorted and allows searches, sequential access, insertions, and deletions in logarithmic time. The B-tree is a generalization of a binary search tree in that a node can have more than two children. (Comer 1979, p. 123) Unlike self-balancing binary search trees, the B-tree is optimized for systems that read and write large blocks of data. It is commonly used in databases and filesystems. A B-tree of order 2 (Bayer & McCreight 1972) or order 5 (Knuth 1998).In B-trees, internal (non-leaf) nodes can have a variable number of child nodes within some pre-defined range. When data are inserted or removed from a node, its number of child nodes changes. In order to maintain the pre-defined range, internal nodes may be joined or split. Because a range of child nodes is permitted, B-trees do not need re-balancing as frequently as other self-balancing search trees, but may waste some space, since nodes are not entirely full. The lower and upper bounds on the number of child nodes are typically fixed for a particular implementation. For example, in a 2-3 B-tree (often simply referred to as a 2-3 tree), each internal node may have only 2 or 3 child nodes. Each internal node of a B-tree will contain a number of keys. The keys act as separation values which divide its subtrees. For example, if an internal node has 3 child nodes (or subtrees) then it must have 2 keys: a1 and a2. All values in the leftmost subtree will be less than a1, all values in the middle subtree will be between a1 and a2, and all values in the rightmost subtree will be greater than a2. Usually, the number of keys is chosen to vary between and . In practice, the keys take up the most space in a node. The factor of 2 will guarantee that nodes can be split or combined. If an internal node has keys, then adding a key to that node can be accomplished by splitting the key node into two key nodes and adding the key to the parent node. Each split node