Here are my implementations of some tree-like data structures:
- Binary search tree
- AVL tree
- AVL tree with sum
- AVL trees with split/merge
- Rope data structure for char strings (based on AVL trees)
I also prepared some tests and benchmark. Benchmark shows that avl performs quite well comparatively to std::set.
Here are the solutions for challenging Stepik problem1 and problem2
Steps to improve:
- use inheritance
- use templates
- add more handy member functions
- use less recursion
- add another types of trees (Splay tree, Red-black tree, B-tree)
- add linux build scripts