internal static MetroEdge CreateFromTwoNodes(int u, int v) { MetroEdge res = new MetroEdge(); res.nodes = new List <int>(); res.nodes.Add(Math.Min(u, v)); res.nodes.Add(Math.Max(u, v)); #if SHARPKIT //https://code.google.com/p/sharpkit/issues/detail?id=289 res.UpdateHashKey(); #endif return(res); }
internal static MetroEdge CreateFromTwoEdges(int v, List <int> e1, List <int> e2) { List <int> nodes = new List <int>(e1.Count + e2.Count - 1); if (e1[0] != v) { for (int i = 0; i < e1.Count; i++) { nodes.Add(e1[i]); } } else { for (int i = e1.Count - 1; i >= 0; i--) { nodes.Add(e1[i]); } } if (e2[0] == v) { for (int i = 1; i < e2.Count; i++) { nodes.Add(e2[i]); } } else { for (int i = e2.Count - 2; i >= 0; i--) { nodes.Add(e2[i]); } } MetroEdge res = new MetroEdge(); res.nodes = nodes; #if SHARPKIT //https://code.google.com/p/sharpkit/issues/detail?id=289 res.UpdateHashKey(); #endif return(res); }
internal static MetroEdge CreateFromTwoNodes(int u, int v) { MetroEdge res = new MetroEdge(); res.nodes = new List<int>(); res.nodes.Add(Math.Min(u, v)); res.nodes.Add(Math.Max(u, v)); #if SHARPKIT //https://code.google.com/p/sharpkit/issues/detail?id=289 res.UpdateHashKey(); #endif return res; }
internal static MetroEdge CreateFromTwoEdges(int v, List<int> e1, List<int> e2) { List<int> nodes = new List<int>(e1.Count + e2.Count - 1); if (e1[0] != v) { for (int i = 0; i < e1.Count; i++) nodes.Add(e1[i]); } else { for (int i = e1.Count - 1; i >= 0; i--) nodes.Add(e1[i]); } if (e2[0] == v) { for (int i = 1; i < e2.Count; i++) nodes.Add(e2[i]); } else { for (int i = e2.Count - 2; i >= 0; i--) nodes.Add(e2[i]); } MetroEdge res = new MetroEdge(); res.nodes = nodes; #if SHARPKIT //https://code.google.com/p/sharpkit/issues/detail?id=289 res.UpdateHashKey(); #endif return res; }