Graph Implementation

  • Compressed Graph program including source code and tests
  • Project Summary

    Many graph operations in the graph class express their results via "labels" assigned to the vertices. There is a vertex_label struct specified in Graph.h which includes the various labels that can be assigned to a vertex (e.g., distance, predecessors, etc.) A particular algorithm like bfs may populate a vector of such labels. The vector is indexed by vertex ID. We sometimes call such a vector a "report." From such reports we can do things like extract paths, etc. All of the operations except bfs (and dfs which you do not need to touch) operate on DAGs.

    Some Requirements: