This repository contains a collection of tree data structures I'm exploring. Included are:
-
Includes an
AvlTree
implementation that solely depends on thecomparator
defined for a single instance of the tree. All exposed methods depend on thecomparator
rather than a booleanpredicate
. -
Additional functionalities provided are as outlined by this Research Paper by
Guy Blelloch
,Daniel Ferizovic
andYihan Sun
. -
The implementation has some basic operations of an
AvlTree
(which canonically is also aSet
) and separate (planned) implementations for:- Joining 2 AvlTrees via a mutually exclusive key ✅
- Joining 2 AvlTrees without key ✅
- Split an AvlTree via key ✅
- SplitLast ✅
- Insert via Split ❌
- Delete via Split ❌
- Union of 2 AvlTrees ✅ (Set operation)
- Intersection of 2 AvlTrees ✅ (Set operation)
- Difference of 2 AvlTrees ✅ (Set operation)
RadixTree (WIP)
A custom implementation of a prefix tree that uses:
- A
HashMap
to store all the root nodes of theRadixTree
. - An
AvlTree
to store all sub-nodes of a (root) node within aRadixTree
.
A basic interface for displaying (debugging) any tree implemented. All trees will explicitly implement this interface.