Java implementations of various data structures.
Implementation of a red-black tree, a kind of self-balancing binary search tree where balance is achieved through maintaining certain node colouring properties. Search, insertion and deletion are all performed in O(log n) time.
An implementation of a min-heap using an arraylist as the underlying data structure. Push and pop operations are all performed in O(log n) time.