public Graph(int n, Route[] r) { nodes = new Node[n]; for (int i = 0; i<n; i++) nodes[i] = new Node(this, i); for (int i = 0; i < r.Length; i++){ for (int j = 0; j< r[i].Length - 1; j++){ nodes[r[i].nodes[j]].AddAdj(r[i].nodes[j+1], i); nodes[r[i].nodes[j+1]].AddAdj(r[i].nodes[j], i); } } }
// струкутра предназначенная для хранения // пары соседний узел - номер маршрута public AdjNode(Graph g, int nn, int rn) { graph = g; node = g.Node(nn+1); route = rn; }
public Edge(Node t, int rn) { nTo = t; r = rn; }