I made some small changes to this code - added a main function file, some definitions in Heap.h, and skeleton versions of Data.h and Data.cpp. This package should now compile with the command g++ *.cpp However, you should still view it as a collection of code, parts of which you can decide to use or not, depending on your design of a solution. Some code here may be useful to you exactly as it is. Some may be useful, but only after you make changes. Other parts may not be useful to you.