码迷,mamicode.com
首页 > 编程语言 > 详细

c++集合。

时间:2015-04-07 15:40:40      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:

#include <iostream>
#include <iomanip>
using namespace std;
#define SIZE 10
#define NULL_DATA -1
class Node
{
	public:
	Node(int x=SIZE)
	{
		data = new int[x];
		for(int i=0;i<x;i++)
		{
			data[i] = NULL_DATA;
		}
	}
 void Union(int root1,int root2)
	{
			int x=Find(root1);
			int y=Find(root2);
			if(x!=y)
			{
				if(data[x]<data[y])
					{
						data[x]+=data[y];
						data[y]=x;
					}
				else
					{
						data[y]+=data[x];
						data[x]=y;
					}
			}
	}
	int Find(int x)
	{
		while(data[x]>0)
			x=data[x];
		return x;
	}
	void view()
	{
		
		for(int i=0;i<SIZE;i++)
		{
			cout<<setw(4)<<data[i];
		}
		cout<<endl;
		for(int j=0;j<SIZE;j++)
		{	
			cout<<setw(4)<<j;
		}
		cout<<endl;
	}
	private:
	int *data;
};


int main()
{
	Node node;
	node.Union(1,2);
	node.Union(2,3);
	node.Union(4,3);
	node.Union(4,5);
	node.Union(6,7);
	node.Union(7,9);
	node.Union(9,10);
	node.view();
	return 0;
}

c++集合。

标签:

原文地址:http://blog.csdn.net/liuhuiyan_2014/article/details/44920133

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!