#pragma once #include "graph.h" class BFS { typedef set::const_iterator node_iterator; const Graph& graph; public: BFS(const Graph& agraph) : graph(agraph) {} bool connected(Node* begin, Node* end); friend Graph; friend Node; }; class DFS { typedef set::const_iterator node_iterator; private: const Graph& graph; set visited; bool connected(Node* begin, Node* end, int depth); public: DFS(const Graph& agraph) : graph(agraph) {} bool connected(Node* begin, Node* end); friend Graph; friend Node; };