나의 tryings와 copypastings. 하지만 biconnectedcomponent (블록이라고 부름)를 찾으려면 무엇을 써야합니까?어떻게 그래프로 bicomponents를 찾을 수 있습니까? 불리는 블럭
#include <fstream>
#include <vector>
using namespace std;
ifstream cin ("test3.txt");
ofstream cout ("output.txt");
const int l = 6;
int G[l][l];
int MAXN;
int used[l];
int number[l], low[l], counter = 1, kids = 0;
vector <int> block[l];
void BiComp(int curr, int prev) {
int kids = 0;
low[curr] = number[curr] = counter++;
used[curr] = 1;
for(int i = 0; i < MAXN; i++) {
if(G[curr][i] == 1) {
if (i != prev) {
if (used[i] == 0) {
kids++;
block[0].push_back(curr);
block[0].push_back(i);
BiComp(i, curr);
low[curr] = min(low[curr], low[i]);
if(low[i] >= number[curr] && (prev != -1 || kids >= 2)) {
cout << "tochka " << curr + 1 << endl;
}
} else {
block[0].push_back(i);
block[0].push_back(prev);
cout<<block<<endl;
low[curr] = min(low[curr], number[i]);
}
}
}
}
}
void main()
{
MAXN = 6;
for (int i = 0; i < MAXN; i++)
{
for (int j = 0; j < MAXN; j++)
{
cin >> G[i][j];
cout << G[i][j] << " ";
}
cout << endl;
}
//for (int i = 0; i < MAXN; i++) {
//if (number[i] == 0) {
BiComp(0, -1);
//}
//}
}
어떻게하면이 코드를 통해 같은 시간 블록에서 절단 점을 찾을 수 있습니까 ??? 그래프 이론에서 biconnected 구성 요소 (또는 2 연결 구성 요소)는 최대 biconnected 하위 그래프입니다.
표시 할 코드가 잘못 되었나요? – Nicolas78
나는 블록을 찾는 알고리즘이 없기 때문에 쓸 방법을 모르겠다. – DPS