RFR: 8345314: Add a red–black tree as a utility data structure [v8]
Casper Norrbin
cnorrbin at openjdk.org
Thu Jan 9 12:57:40 UTC 2025
> 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 three additional commits since the last revision:
- updated copyright headers
- stable tree nodes
- more feedback from johan
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/22360/files
- new: https://git.openjdk.org/jdk/pull/22360/files/505c7f8d..6a06e15d
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=22360&range=07
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=22360&range=06-07
Stats: 216 lines in 3 files changed: 135 ins; 61 del; 20 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