C++ implementation of a directed acyclic graph. Written for maximum execution speed, therefore avoiding the new operator whenever possible and allocating memory only once.