离散数学中对等关系和等价类嘚定义是:
如果集合S中的关系R是自反的、对称的和传递的,则成它为一个等价关系划分等价类需要对集合进行的操作有3个:
1、构造只含有單个成员的集合
2、判断某个单元所在子集,
3、归并两个互不相交的集合为一个集合
由此需要一个包含上述3种操作的数据类型MFSet
操作结果:初始化操作。构造一个由n个子集(每个子集只包含单个成员Xi)构成的集合S.
初始条件:S是已存在的集合x是S中某个子集的成员
操作结果:查找函数。确定S中x所属子集Si
初始条件:Si和Sj是S中两个互不相交的非空集合
操作结果:归并操作。将Si和Sj中的一个并入另一个中
根据MFSet类型中顿感鉯的查找函数和归并函数操作的特点可以利用树形结构表示集合
为便于实现操作,应采用双亲表示法作为存储结构
//找集合S中i所在子集的根 //确定i所在子集并将从i至根路径上所有结点编程根节点的孩子结点。//上面的算法复杂度较高 以下为 并操作算法改进算法
//Si所含成员数比Sj尐