假设一个std::set< std::pair<char, char> >
,有人可以建议一种算法或方法来检查是否存在循环对吗?
例如
std::set< std::pair<char, char> > cyclic = { {'A', 'B'}, {'B', 'C'}, {'C', 'A'} };
std::set< std::pair<char, char> > not_cyclic = { {'A', 'B'}, {'B', 'C'}, {'C', 'C'} };
isCyclic(cyclic); // true
isCyclic(not_cyclic); // false
我不想使用任何 extern 库(允许使用 c++ 库),因为该函数bool isCyclic(const std::set< std::pair<char, char> >& set);
只会被使用一次,而且对于#include
像 boost 这样的大型库来说,对于那个函数来说它应该是矫枉过正的......
任何想法如何解决这个问题?