Jump to content

Left-leaning red–black tree: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Fix link, now 2-3 tree link goes to 2-3 tree article, not to 2-3-4 tree article
Noamz (talk | contribs)
→‎Analysis: correction (base2 log -> natural log), and clarify that these are Sedgewick's experimental results
Line 34: Line 34:
All of the red-black tree algorithms that have been proposed are characterized by a worst-case search time bounded by a small constant multiple of {{math|log ''N''}} in a tree of {{mvar|N}} keys, and the behavior observed in practice is typically that same multiple faster than the worst-case bound, close to the optimal {{math|log ''N''}} nodes examined that would be observed in a perfectly balanced tree.
All of the red-black tree algorithms that have been proposed are characterized by a worst-case search time bounded by a small constant multiple of {{math|log ''N''}} in a tree of {{mvar|N}} keys, and the behavior observed in practice is typically that same multiple faster than the worst-case bound, close to the optimal {{math|log ''N''}} nodes examined that would be observed in a perfectly balanced tree.


Specifically, in a left-leaning red-black [[2–3 tree]] built from {{mvar|N}} random keys:
Specifically, in a left-leaning red-black [[2–3 tree]] built from {{mvar|N}} random keys, Sedgewick's experiments suggest that:
* A random successful search examines {{math|log<sub>2</sub> ''N'' &minus; 0.5}} nodes.
* A random successful search examines {{math|log<sub>2</sub> ''N'' &minus; 0.5}} nodes.
* The average tree height is about {{math|2 log<sub>2</sub> ''N''}}
* The average tree height is about {{math|2 ln ''N''}}
* The average size of left subtree exhibits log-oscillating behavior.
* The average size of left subtree exhibits log-oscillating behavior.



Revision as of 06:43, 21 April 2024

Left-leaning red–black tree
Typetree
Invented2008
Invented byRobert Sedgewick
Time complexity in big O notation
Operation Average Worst case
Search O(log n) O(log n)
Insert O(log n) O(log n)
Delete O(log n) O(log n)
Space complexity
Space O(n) O(n)

A left-leaning red–black (LLRB) tree is a type of self-balancing binary search tree. It is a variant of the red–black tree and guarantees the same asymptotic complexity for operations, but is designed to be easier to implement.

Properties

A left-leaning red-black tree satisfies all the properties of a red-black tree:

  1. Every node is either red or black.
  2. A NIL node is considered black.
  3. A red node does not have a red child.
  4. Every path from a given node to any of its descendant NIL nodes goes through the same number of black nodes.
  5. The root is black (by convention).

Additionally, the left-leaning property states that:

  1. A node must not have a red right child.

Relation to 2–3 trees

In the same way conventional red-black trees are related to 2–3–4 trees, left-leaning red-black trees are isomorphic to 2–3 trees, which are a subtype of 2–3–4 trees. This means that for every left-leaning red-black tree, there is a unique corresponding 2–3 tree, and vice versa. Precisely, each (red left child, black parent) pair corresponds to a degree 3 node in a 2–3 tree, and all other black nodes correspond to degree 2 nodes.

Analysis

All of the red-black tree algorithms that have been proposed are characterized by a worst-case search time bounded by a small constant multiple of log N in a tree of N keys, and the behavior observed in practice is typically that same multiple faster than the worst-case bound, close to the optimal log N nodes examined that would be observed in a perfectly balanced tree.

Specifically, in a left-leaning red-black 2–3 tree built from N random keys, Sedgewick's experiments suggest that:

  • A random successful search examines log2 N − 0.5 nodes.
  • The average tree height is about 2 ln N
  • The average size of left subtree exhibits log-oscillating behavior.

Bibliography

External links