![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Дан неориентированный граф с
вершинами и
рёбрами. Требуется найти в нём все компоненты связности, т.е. разбить вершины графа на несколько групп так, что внутри одной группы можно дойти от одной вершины до любой другой, а между разными группами — пути не существует.
int n;
vector<int> g[MAXN];
bool used[MAXN];
vector<int> comp;
void dfs (int v)
(………………………)
void find_comps() {
for (int i=0; i<n; ++i)
used[i] = false;
for (int i=0; i<n; ++i)
if (! used[i]) {
comp.clear();
dfs (i);
cout << "Component:";
for (size_t j=0; j<comp.size(); ++j)
cout << ' ' << comp[j];
cout << endl;
}
}
Дата публикования: 2015-09-18; Прочитано: 330 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!