65树与等价问题.docVIP

  • 15
  • 0
  • 约2.06千字
  • 约 4页
  • 2017-06-08 发布于重庆
  • 举报
65树与等价问题

6.5树与等价问题 下图中,等价关系的一个有序对为 6,8 ,则s1和s2需要合并。 // #define MAX_TREE_SIZE 100 Typedef struct PTNode TElemType data; Int parent; //双亲位置域。 PTNode; Typedef struct PTNode nodes[MAX_TREE_SIZE]; int n; //结点数。 PTree; // typedef PTree MFSet; int find_mfset MFSet S,int i //找集合S中i所在子集的根。 if i 1 || i S.n return -1; //i不属S中任一子集。 for j i;S.nodes[j].parent 0;j S.nodes[j].parent ; return j; // find_mfset Status merge_mfset MFSet S,int i,int j //S.nodes[i]和S.nodes[j]分别为S的互不相交的两个子集Si和Sj的根结点。 //求并集Si∪Sj. if i 1 || i S.n || j 1 || j S.n reurn ERROR; S.nodes[i].parent j; return OK; //merge_mfset //为解决下图并操作结果树过深,修改并函数。 //修改存储结构:根节点的parent域存储子集中所含成员数目的负值。 void mix_mfset MFSet S,int i,int j //S.nodes[i]和S.nodes[j]分别为S的互不相交的两个子集Si和Sj的根结点。 //求并集Si∪Sj. if i 1 || i S.n || j 1 || j S.n return ERROR; if S.nodes[i].parent S.nodes[j].parent //Si所含成员数比Sj少。 S.nodes[j].parent+ S.nodes[i].parent; S.nodes[i].parent j; //if S.nodes[i].parent S.nodes[j].parent else S.nodes[i].parent+ S.nodes[j].parent; S.nodes[j].parent i; // else_if S.nodes[i].parent S.nodes[j].parent return OK; // mix_mfset 例6-1:假设集合S x|1≤x≤n是正整数 ,R是S上的一个等价关系。 R (1,2),(3,4),(5,6),(7,8),(1,3),(5,7),(1,5),... 现求S的等价类。 //修改find_mfset函数,查找同时压缩路径。 int fix_mfset MFSet S,int i //确定i所在子集,并将从i至根路径上所有节点都变成根的孩子节点。 if i 1 ||i S.n return -1; //i不是S中任一子集的成员。 for j i;S.nodes[j].parent 0;j S.nodes[j].parent ; for k i;k! j;k t t S.nodes[k].parent;S.nodes[k].parent j; return j; // fix_mfset s1∪s2∪s3 2 3 s1∪s2 1 s1∪s2...∪sn 1 2 1 Sn n ... S1 S3 S2 6 9 3 S3 s1∪s2 8 10 1 S2 2 10 9 3 1 8 2 S1 6 2 1 3 n-1 n . . . . . . n个集合 “并”操作 n ... 9 8 7 6 4 3 9 8 7 6 5 3 5 2 1 4 ... n 2 1 a压缩路径之前 b压缩路径之后 R的下一个有序对为(8,9),执行fix_mfset(s,8)前后对比 S.nodes MIX S,5,6 -1 -1 7 -2 5 -2 MIX S,1,2 MIX S,3,4 3 -1 … -1 -1 -1 -1 -1 -1 -1 -1 -1 9 8 7 6 5 4 3 2 1 MIX S,7,8 -2 1 n 9 8 7 6 5 4 3 2 MIX S,1,3 MIX S,5,7 n … S.nodes -2 1 -1 -1 7 5 5 -4 3 1 1 n 9 8 7 6 5 4 3 2 MIX S,1,5 … S.nodes -4 1 -1 -1 7 5 5 1 3 1 1 n 9 8 7 6 5 4 3 2 等价关系的一个有序对为 6,8 ,则

文档评论(0)

1亿VIP精品文档

相关文档