Fix_mfset是啥意思?
答案:1 悬赏:40 手机版
解决时间 2021-11-10 20:34
- 提问者网友:送舟行
- 2021-11-10 10:58
Fix_mfset是啥意思?
最佳答案
- 五星知识达人网友:街头电车
- 2021-11-10 12:36
树与等价问题 typedef PTree MFSet; int find_mfset( MFSet S, int i){ //查找i所属子集 if( i<1 || i>S.n) return -1; 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){ //集合的并 if( i<1||i>S.n||j<1||j>S.n) return ERROR; S.nodes[i].parent=j; return OK; }// merge_mfset 改进“并”操作的算法,令成员少的子集树根节点指向成员多的子集的根;修改存储结构—令根节点的parent与存储子集中所含成员数目的负值。 Status mix_mfset( MFSet &S, int i, int j){ if(i<1||i>S.n||j<1||j>S.n) return ERROR; if( S.nodes[i].parent>S.nodes[j].parent) { S.nodes[j].parent+=S.nodes[i].parent; S.nodes[i].parent=j; } else{ S.nodes[i].parent+=S.nodes[j].parent; S.nodes[j].parent=i; } return OK; }// mix_mfset 改进查找子集算法,增加“压缩路径”功能 int fix_mfset( MFSet &S, int i){ if(i<1||i>S.n) return -1; 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
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯