⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 netfind.cpp

📁 常用算法与数据结构原代码
💻 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 + -