我正在java中实现最小跨越Forrest算法。但坚持如何写一个循环

时间:2016-01-18 19:14:57

标签: java algorithm graph-algorithm

Algorithmm:

输入:图G

输出:MSTs T

的集合

开始

T = NULL; E = G.Edges;

对于G中的所有顶点, 创建具有单个顶点b

的树t

将T添加到T

结束

 repeat
    Find an edge e ∈ E having minimum weight
    such that one end belongs to t ∈ T and the other
    end does not belongs to any of the trees in T
    Add e to t
  until e = NULL

我坚持突出显示的块的逻辑。 我已经将简单对象用于顶点,边和树。对于他们的集合,使用了对象数组。

我有代码:

      Tree[] findMSF(){
   T=new Tree[numofMST];
   E=new Edge[C.v.length];
   for(int i=0;i<E.length;i++){
       E[i]=C.e[i];//E ← C.Edges
   }
   for(int i=0;i<B.length;i++){

       t=new Tree(B[i].v);//Create a tree t having single vertex b
       T[i]=t;// T ← T U t

   }

   do{
     e=find_e(E);

   }while(e!=null);

    return T;
    }

我需要实现find_e(E);

1 个答案:

答案 0 :(得分:0)

使用for循环。

for (int i = 1; i < 10; i++) { Your code } 要更改重复的次数,请将10更改为另一个数字。