GraphAlgo.h 634 B

12345678910111213141516171819202122232425262728
  1. #pragma once
  2. #include "Graph.h"
  3. class BFS
  4. {
  5. typedef set<GraphNode*>::const_iterator node_iterator;
  6. const Graph* graph;
  7. public:
  8. BFS(const Graph* agraph) : graph(agraph) {}
  9. bool connected(GraphNode* begin, GraphNode* end);
  10. friend Graph;
  11. friend GraphNode;
  12. };
  13. class DFS {
  14. typedef set<GraphNode*>::const_iterator node_iterator;
  15. private:
  16. const Graph* graph;
  17. set<GraphNode*> visited;
  18. bool connected(GraphNode* begin, GraphNode* end, int depth);
  19. public:
  20. DFS(const Graph* agraph) : graph(agraph) {}
  21. bool connected(GraphNode* begin, GraphNode* end);
  22. friend Graph;
  23. friend GraphNode;
  24. };