Note: An implementation of the algorithms and data structures described below is publicly available on Github here in C++.| Nick's Blog