Search results
Results From The WOW.Com Content Network
In computer science, a red–black tree is a self-balancing binary search tree data structure noted for fast storage and retrieval of ordered information. The nodes in a red-black tree hold an extra "color" bit, often drawn as red and black, which help ensure that the tree is always approximately balanced.
To turn a regular search tree into an order statistic tree, the nodes of the tree need to store one additional value, which is the size of the subtree rooted at that node (i.e., the number of nodes below it). All operations that modify the tree must adjust this information to preserve the invariant that size[x] = size[left[x]] + size[right[x]] + 1
Most operations on a binary search tree (BST) take time directly proportional to the height of the tree, so it is desirable to keep the height small. A binary tree with height h can contain at most 2 0 +2 1 +···+2 h = 2 h+1 −1 nodes. It follows that for any tree with n nodes and height h: + And that implies:
AVL tree, red–black tree, and splay tree, kinds of binary search tree data structures that use rotations to maintain balance. Associativity of a binary operation means that performing a tree rotation on it does not change the final result. The Day–Stout–Warren algorithm balances an unbalanced BST.
One property of a 2–3–4 tree is that all external nodes are at the same depth. 2–3–4 trees are closely related to red–black trees by interpreting red links (that is, links to red children) as internal links of 3-nodes and 4-nodes, although this correspondence is not one-to-one. [2]
A left-leaning red-black tree satisfies all the properties of a red-black tree: Every node is either red or black. A NIL node is considered black. A red node does not have a red child. Every path from a given node to any of its descendant NIL nodes goes through the same number of black nodes. The root is black (by convention).
The total insert complexity is still comparable to the R-tree: reinsertions affect at most one branch of the tree and thus () reinsertions, comparable to performing a split on a regular R-tree. So, on overall, the complexity of the R*-tree is the same as that of a regular R-tree.
Unlike red–black trees, red nodes on an AA tree can only be added as a right subchild. In other words, no red node can be a left sub-child. This results in the simulation of a 2–3 tree instead of a 2–3–4 tree , which greatly simplifies the maintenance operations.