int main(int argc, char** argv) { Graph graph; graph.InsertEdge("A", "B"); graph.InsertEdge("A", "C"); graph.InsertEdge("B", "D"); graph.Print(); Search search; search.Initialize(graph); search.Bfs(graph, "A"); for (unordered_map<string, string>::iterator item = search.parents_.begin(); item != search.parents_.end(); ++item) cout << item->first << ":" << item->second << endl; search.Initialize(graph); search.Dfs(graph, "A"); for (unordered_map<string, string>::iterator item = search.parents_.begin(); item != search.parents_.end(); ++item) cout << item->first << ":" << item->second << endl; return 0; }