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); } } }
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; } } } } }