Yggdrasill  0.2
Yggdrasill Documentation

This is Ygg (short for Yggdrasil), a C++17 implementation of intrusive search tree and interval data structures. It currently contains:

If you need a Red-Black-Tree, a Zip Tree, an Interval Tree or an Interval Map in your C++ application, and for some reason the existing implementations (like std::set or boost::instrusive::rbtree) are not suited for you, Ygg may be the answer. Also, I do not know of any other implementation of the "Dynamic Segment Tree" (if you know something similar, please let me know!)

See the list of features below for why Ygg is awesome!

If you are not sure whether one of these data structures is right for your application, check out the Overview over the Data Structures.



It's a header-only library. (Yes I know, there are .cpp files. I like to keep declaration and definition separated, even if everything's actually a header.) Just make sure everything in the src folder is in your include path, and you're set.

Getting Started

If you already know which data structure you want to use (if not, check out Overview over the Data Structures), the examples (which can also be found in the examples folder) might be the easiest way to get started:

There's also a Quickstart page that walks you through the examples for the red-black tree and the interval tree.


The API is somewhat documented. Check out the menu above for documentation on the individual classes.


This software is licensed under the MIT license. See License for details.