RFR: 8345314: Add a red–black tree as a utility data structure [v19]

Casper Norrbin cnorrbin at openjdk.org
Wed Jan 29 10:11:36 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 one additional commit since the last revision:

  axel feedback

-------------

Changes:
  - all: https://git.openjdk.org/jdk/pull/22360/files
  - new: https://git.openjdk.org/jdk/pull/22360/files/9e0631ab..d4d60fff

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=22360&range=18
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=22360&range=17-18

  Stats: 70 lines in 2 files changed: 26 ins; 6 del; 38 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