Heap implemented in C++ based on this explanation and pseudo code: http://www.csce.uark.edu/~jgauch/2014/slides/ch17.pdf