Exemplo n.º 1
0
 public DirectedCycle(EdgeWeightDiGraph g)
 {
     inStack   = new bool[g.getV()];
     edgeTo    = new int[g.getV()];
     isMarked  = new bool[g.getV()];
     cycleList = new List <Stack <Vertex> >();
     for (int i = 0; i < g.getV(); i++)
     {
         if (!isMarked[i])
         {
             dfs(g, i);
         }
     }
 }
Exemplo n.º 2
0
 public void SetEle(EdgeWeightDiGraph g, Stack <Vertex> cycle, float electry)//每圈分别设置电压,电流
 {
     for (int c = 0; c < cycle.Count - 1; c++)
     {
         for (int i = 0; i < g.getV(); i++)
         {
             if (g.getVetrx(i) == cycle.ElementAt(c))
             {
                 g.getVetrx(i).Electricity = electry;
                 if (g.getVetrx(i).Resistance != 0)//不是电线或者电池的情况下计算电压。
                 {
                     g.getVetrx(i).Voltage = electry * g.getVetrx(i).Resistance;
                 }
                 Console.WriteLine("发电中,元器件" + i + "电流为:" + electry + "电压为:" + g.getVetrx(i).Voltage);
                 for (int j = 0; j < g.getVetrx(i).adj.Count; j++)
                 {
                     g.getVetrx(i).adj[j].Electricity = electry;
                 }
             }
         }
     }
 }