commit | f3ff75289be32382fa455b4436871e4958fe6bf9 | [log] [tgz] |
---|---|---|
author | Jason Evans <jasone@canonware.com> | Sun Feb 28 15:00:18 2010 -0800 |
committer | Jason Evans <jasone@canonware.com> | Sun Feb 28 15:00:18 2010 -0800 |
tree | a3443bf0ccb3088b46c822d984216ad5afc60697 | |
parent | fbb504def6f8cb051ac9766b757c2d48d643a281 [diff] |
Rewrite red-black trees. Use left-leaning 2-3 red-black trees instead of left-leaning 2-3-4 red-black trees. This reduces maximum tree height from (3 lg n) to (2 lg n). Do lazy balance fixup, rather than transforming the tree during the down pass. This improves insert/remove speed by ~30%. Use callback-based iteration rather than macros.