RFR: 8345314: Add a red–black tree as a utility data structure [v4]
Casper Norrbin
cnorrbin at openjdk.org
Thu Dec 12 14:03:15 UTC 2024
> Hi everyone,
>
> This effort began as an exploration of replacing the current NMT treap with a red-black tree. Along the way, I discovered that others were also interested in having a general-purpose tree structure available within HotSpot.
>
> The red-black tree is designed to serve as a drop-in replacement for the existing NMT treap, keeping a nearly identical interface. However, I’ve also added a few additional requested features, such as an iterator.
>
> Testing builds off the treap tests, adding a few extra that inserts/removes and checks that the tree is correct. Testing uses the function `verify_self`, which iterates over the tree and checks that all red-black tree properties hold. Additionally, the tree has been tested in vmatree instead of the treap without any errors.
>
> For those who may want to revisit the fundamentals of red-black trees, [Wikipedia](https://en.wikipedia.org/wiki/Red%E2%80%93black_tree) offers a great summary with tables covering the various balancing cases. Alternatively, your favorite data structure book could provide even more insight.
Casper Norrbin has updated the pull request incrementally with one additional commit since the last revision:
feedback fixes + moved functions to inline file
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/22360/files
- new: https://git.openjdk.org/jdk/pull/22360/files/5bf6082a..6e67b5d3
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=22360&range=03
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=22360&range=02-03
Stats: 954 lines in 3 files changed: 520 ins; 395 del; 39 mod
Patch: https://git.openjdk.org/jdk/pull/22360.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/22360/head:pull/22360
PR: https://git.openjdk.org/jdk/pull/22360
More information about the hotspot-dev
mailing list