📄 netfind.cpp
字号:
#include <iostream.h>
int *E;
void Initialize(int n)
{
// Initialize n classes with one element each.
E = new int [n + 1];
for (int e = 0; e <= n; e++)
E[e] = e;
}
void Union(int i, int j, int n)
{
// Union the classes i and j.
if (i >= j)
{
for (int k = 0; k <= n; k++)
{
if (E[k] == j)
E[k] = i;
}
}
else
{
for (int k = 0; k <= n; k++)
{
if (E[k] == i)
E[k] = j;
}
}
}
int Find(int e)
{
// Find the class that contains element e.
return E[e];
}
void main(void)
{
int i, j, group;
int n = 14; // 针脚数
Initialize(14);
while(1)
{
cin >> i >> j;
if(i<=0 || j<=0)
break;
Union(Find(i), Find(j), n);
}
cout<<"网组:"<< endl;
bool finish = false;
while(!finish)
{
for (i=1; i<=n; i++)
{
if (E[i] != 0)
{
group = E[i];
break;
}
}
if(i > n)
finish = true;
for (i=1; i<=n; i++)
{
if (E[i] == group)
{
cout<<i<<" ";
E[i] = 0;
}
}
cout<<endl;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -