109{
112 vector<int> degree;
113 for (
int i(0) ; i <
m_path.at(iconnect).size() ; ++i) {
115 }
116 vector<int>::iterator max_it, min_it;
117 max_it = max_element(degree.begin(), degree.end());
118 min_it = min_element(degree.begin(), degree.end());
119 if (*max_it == 2 && *min_it == 2) {
120 vector<int> path_new;
121 int s0 =
m_path.at(iconnect).at(0);
122 int sinit = s0;
123 int s1, s2;
125 bool ok = true;
126 while (ok) {
127 path_new.push_back(s0);
129 } else {
131 }
132 ok = (path_new.size() !=
m_path.at(iconnect).size());
133 if (!ok && s1 == sinit) {
134 res.at(iconnect) = true;
135 }
136 s0 = s1;
137 s1 = s2;
138 }
139 m_path.at(iconnect) = path_new;
140 }
141 }
142 return res;
143}
std::vector< std::vector< int > > m_adj_list
int m_nb_connected_components
std::vector< std::vector< int > > m_path
std::vector< int > m_degree