public void AddEdgeClick(bool flag, int x, int y, int val) //добавить ребро по клику { GNode selected2 = GetGnodeByXY(x, y); if (selected2 == null) { return; } if (selected == null) { selected = selected2; } else { GEdge e = new GEdge(selected, selected2); e.weight = val; selected.Edge.Add(e); if (!flag) // undirected - два пути туда обратно { GEdge f = new GEdge(selected2, selected); // двусторонняя дорога f.weight = val; //selected.Edge.Add(f); selected2.Edge.Add(f); } selected = null; } }
public void AddEdgeClick(bool flag, int x, int y, int val) { GNode selected2 = GetGnodeByXY(x, y); if (selected2 == null) { return; } if (selected == null) { selected = selected2; } else { GEdge e = new GEdge(selected, selected2); e.weight = val; selected.Edge.Add(e); if (!flag) { GEdge f = new GEdge(selected2, selected); f.weight = val; selected2.Edge.Add(f); } selected = null; } }
public void AddEdge(int f, int s, int val) { GEdge e = new GEdge(Nodes[f], Nodes[s]); e.weight = val; Nodes[f].Edge.Add(e); }
public void AddEdge(int f, int s, int val) //добавить ребро через индексы узлов { GEdge e = new GEdge(Nodes[f], Nodes[s]); e.weight = val; Nodes[f].Edge.Add(e); //Nodes[s].Edge.Add(e);//ошибка при выводе,достаточно хранить в одной }