static void Main(string[] args) { Graph g = new Graph(); g.add_vertex('A', new Dictionary <char, int>() { { 'B', 1 }, { 'C', 2 } }); g.add_vertex('B', new Dictionary <char, int>() { { 'C', 1 }, { 'D', 5 }, { 'E', 2 } }); g.add_vertex('C', new Dictionary <char, int>() { { 'D', 2 }, { 'E', 1 }, { 'F', 4 } }); g.add_vertex('D', new Dictionary <char, int>() { { 'E', 3 }, { 'F', 6 }, { 'G', 8 } }); g.add_vertex('E', new Dictionary <char, int>() { { 'F', 3 }, { 'G', 7 } }); g.add_vertex('F', new Dictionary <char, int>() { { 'G', 5 }, { 'H', 2 } }); g.add_vertex('G', new Dictionary <char, int>() { { 'H', 6 } }); g.add_vertex('H', new Dictionary <char, int>() { }); // g.shortest_path('A', 'F').ForEach(x => Console.WriteLine(x)); Console.WriteLine("Dijskra ALgorithm"); foreach (var vertex in g.shortest_path('A', 'F')) { Console.WriteLine(vertex.Key + "," + vertex.Value); } Console.WriteLine(".................................................."); Console.WriteLine("FLoyd's Part"); foreach (var startVertex in g.vertices) { foreach (var endVertex in g.vertices) { Console.WriteLine($"From {startVertex.Key} to {endVertex.Key}"); foreach (var vertex in g.shortest_path(startVertex.Key, endVertex.Key)) { Console.WriteLine(vertex.Key + "," + vertex.Value); } } Console.WriteLine("--------------------"); } Console.ReadLine(); }
public static void AddDraph(UnityEngine.Vector3[,] posicao, int[,] peso, int distance) { for (int x = 1; x < distance - 1; x++) { for (int y = 1; y < distance - 1; y++) { g.add_vertex(posicao[x, y], new Dictionary <UnityEngine.Vector3, int>() { { posicao[x + 1, y], peso[x + 1, y] }, { posicao[x - 1, y], peso[x - 1, y] }, { posicao[x, y + 1], peso[x, y + 1] }, { posicao[x, y - 1], peso[x, y - 1] } }); } } }
static void Main(string[] args) { Graph g = new Graph(); g.add_vertex('A', new Dictionary <char, int>() { { 'B', 7 }, { 'C', 8 } }); g.add_vertex('B', new Dictionary <char, int>() { { 'A', 7 }, { 'F', 2 } }); g.add_vertex('C', new Dictionary <char, int>() { { 'A', 8 }, { 'F', 6 }, { 'G', 4 } }); g.add_vertex('D', new Dictionary <char, int>() { { 'F', 8 } }); g.add_vertex('E', new Dictionary <char, int>() { { 'H', 1 } }); g.add_vertex('F', new Dictionary <char, int>() { { 'B', 2 }, { 'C', 6 }, { 'D', 8 }, { 'G', 9 }, { 'H', 3 } }); g.add_vertex('G', new Dictionary <char, int>() { { 'C', 4 }, { 'F', 9 } }); g.add_vertex('H', new Dictionary <char, int>() { { 'E', 1 }, { 'F', 3 } }); g.shortest_path('E', 'G').ForEach(x => Console.WriteLine(x)); Console.ReadKey(); }
public List <Node> loadLocations() { Node NodeA = new Node("Estadio Nacional", 9.937014, -84.107783); Node NodeB = new Node("Catedral Metropolitana", 9.932782, -84.078771); Node NodeC = new Node("Teatro Nacional", 9.933310, -84.077195); Node NodeD = new Node("Mall San Pedro", 9.933496, -84.056588); Node NodeE = new Node("Cenfotec", 9.932410, -84.031022); Node NodeF = new Node("Multiplaza Curri", 9.918141, -84.046839); Node NodeG = new Node("Universidad de Costa Rica", 9.938262, -84.051131); Node NodeH = new Node("Museo Nacional de Costa Rica", 9.933506, -84.071677); Node NodeI = new Node("Universidad Nacional", 9.999962, -84.111398); Node NodeJ = new Node("El Fortín", 10.000427, -84.117063); Node NodeK = new Node("Parque Central", 9.933204, -84.079662); Node NodeL = new Node("Parque de la paz", 9.913378, -84.072238); Node NodeM = new Node("Parque de diversiones", 9.961281, -84.128052); Node NodeN = new Node("Hospital la Catolica", 9.950094, -84.058953); Node NodeO = new Node("TEC", 9.856760, -83.911665); Node NodeP = new Node("Aeropuerto Internacional Juan Santamaría", 9.998766, -84.204073); Node NodeQ = new Node("zoo Ave", 10.012480, -84.275422); Node NodeR = new Node("San Antonio de Belen", 9.978756, -84.184994); Node NodeS = new Node("AyA", 9.937973, -84.119519); Node NodeT = new Node("Parque Morazán", 9.935684, -84.075394); Node NodeU = new Node("Estación del Ferrocarril al Atlántico", 9.934748, -84.068853); Node NodeV = new Node("Hospital Calderón Guardia", 9.937001, -84.069439); Node NodeW = new Node("Lupulus Beer Shop", 9.935899, -84.062038); Node NodeX = new Node("Estacion de trenes al Pacifico", 9.925545, -84.080619); Node NodeY = new Node("Hospital México", 9.951550, -84.115071); nodes.Add(NodeA); nodes.Add(NodeB); nodes.Add(NodeC); nodes.Add(NodeD); nodes.Add(NodeE); nodes.Add(NodeF); nodes.Add(NodeG); nodes.Add(NodeH); nodes.Add(NodeI); nodes.Add(NodeJ); nodes.Add(NodeK); nodes.Add(NodeL); nodes.Add(NodeM); nodes.Add(NodeN); nodes.Add(NodeO); nodes.Add(NodeP); nodes.Add(NodeQ); nodes.Add(NodeR); nodes.Add(NodeS); nodes.Add(NodeT); nodes.Add(NodeU); nodes.Add(NodeV); nodes.Add(NodeW); nodes.Add(NodeX); nodes.Add(NodeY); graph.add_vertex(NodeA, new Dictionary <Node, int>() { { NodeB, getDistance(NodeA, NodeB) }, { NodeC, getDistance(NodeA, NodeC) }, { NodeD, getDistance(NodeA, NodeD) }, { NodeE, getDistance(NodeA, NodeE) }, { NodeF, getDistance(NodeA, NodeF) }, { NodeG, getDistance(NodeA, NodeG) }, { NodeH, getDistance(NodeA, NodeH) }, { NodeI, getDistance(NodeA, NodeI) }, { NodeJ, getDistance(NodeA, NodeJ) }, { NodeK, getDistance(NodeA, NodeK) }, { NodeL, getDistance(NodeA, NodeL) }, { NodeM, getDistance(NodeA, NodeM) }, { NodeN, getDistance(NodeA, NodeN) }, { NodeO, getDistance(NodeA, NodeO) }, { NodeP, getDistance(NodeA, NodeP) }, { NodeQ, getDistance(NodeA, NodeQ) }, { NodeR, getDistance(NodeA, NodeR) }, { NodeS, getDistance(NodeA, NodeS) }, { NodeT, getDistance(NodeA, NodeT) }, { NodeU, getDistance(NodeA, NodeU) }, { NodeV, getDistance(NodeA, NodeV) }, { NodeW, getDistance(NodeA, NodeW) }, { NodeX, getDistance(NodeA, NodeX) }, { NodeY, getDistance(NodeA, NodeY) } }); graph.add_vertex(NodeB, new Dictionary <Node, int>() { { NodeA, getDistance(NodeB, NodeA) }, { NodeC, getDistance(NodeB, NodeC) }, { NodeD, getDistance(NodeB, NodeD) }, { NodeE, getDistance(NodeB, NodeE) }, { NodeF, getDistance(NodeB, NodeF) }, { NodeG, getDistance(NodeB, NodeG) }, { NodeH, getDistance(NodeB, NodeH) }, { NodeI, getDistance(NodeB, NodeI) }, { NodeJ, getDistance(NodeB, NodeJ) }, { NodeK, getDistance(NodeB, NodeK) }, { NodeL, getDistance(NodeB, NodeL) }, { NodeM, getDistance(NodeB, NodeM) }, { NodeN, getDistance(NodeB, NodeN) }, { NodeO, getDistance(NodeB, NodeO) }, { NodeP, getDistance(NodeB, NodeP) }, { NodeQ, getDistance(NodeB, NodeQ) }, { NodeR, getDistance(NodeB, NodeR) }, { NodeS, getDistance(NodeB, NodeS) }, { NodeT, getDistance(NodeB, NodeT) }, { NodeU, getDistance(NodeB, NodeU) }, { NodeV, getDistance(NodeB, NodeV) }, { NodeW, getDistance(NodeB, NodeW) }, { NodeX, getDistance(NodeB, NodeX) }, { NodeY, getDistance(NodeB, NodeY) } }); graph.add_vertex(NodeC, new Dictionary <Node, int>() { { NodeB, getDistance(NodeC, NodeB) }, { NodeA, getDistance(NodeC, NodeA) }, { NodeD, getDistance(NodeC, NodeD) }, { NodeE, getDistance(NodeC, NodeE) }, { NodeF, getDistance(NodeC, NodeF) }, { NodeG, getDistance(NodeC, NodeG) }, { NodeH, getDistance(NodeC, NodeH) }, { NodeI, getDistance(NodeC, NodeI) }, { NodeJ, getDistance(NodeC, NodeJ) }, { NodeK, getDistance(NodeC, NodeK) }, { NodeL, getDistance(NodeC, NodeL) }, { NodeM, getDistance(NodeC, NodeM) }, { NodeN, getDistance(NodeC, NodeN) }, { NodeO, getDistance(NodeC, NodeO) }, { NodeP, getDistance(NodeC, NodeP) }, { NodeQ, getDistance(NodeC, NodeQ) }, { NodeR, getDistance(NodeC, NodeR) }, { NodeS, getDistance(NodeC, NodeS) }, { NodeT, getDistance(NodeC, NodeT) }, { NodeU, getDistance(NodeC, NodeU) }, { NodeV, getDistance(NodeC, NodeV) }, { NodeW, getDistance(NodeC, NodeW) }, { NodeX, getDistance(NodeC, NodeX) }, { NodeY, getDistance(NodeC, NodeY) } }); graph.add_vertex(NodeD, new Dictionary <Node, int>() { { NodeB, getDistance(NodeD, NodeB) }, { NodeC, getDistance(NodeD, NodeC) }, { NodeA, getDistance(NodeD, NodeA) }, { NodeE, getDistance(NodeD, NodeE) }, { NodeF, getDistance(NodeD, NodeF) }, { NodeG, getDistance(NodeD, NodeG) }, { NodeH, getDistance(NodeD, NodeH) }, { NodeI, getDistance(NodeD, NodeI) }, { NodeJ, getDistance(NodeD, NodeJ) }, { NodeK, getDistance(NodeD, NodeK) }, { NodeL, getDistance(NodeD, NodeL) }, { NodeM, getDistance(NodeD, NodeM) }, { NodeN, getDistance(NodeD, NodeN) }, { NodeO, getDistance(NodeD, NodeO) }, { NodeP, getDistance(NodeD, NodeP) }, { NodeQ, getDistance(NodeD, NodeQ) }, { NodeR, getDistance(NodeD, NodeR) }, { NodeS, getDistance(NodeD, NodeS) }, { NodeT, getDistance(NodeD, NodeT) }, { NodeU, getDistance(NodeD, NodeU) }, { NodeV, getDistance(NodeD, NodeV) }, { NodeW, getDistance(NodeD, NodeW) }, { NodeX, getDistance(NodeD, NodeX) }, { NodeY, getDistance(NodeD, NodeY) } }); graph.add_vertex(NodeE, new Dictionary <Node, int>() { { NodeB, getDistance(NodeE, NodeB) }, { NodeC, getDistance(NodeE, NodeC) }, { NodeD, getDistance(NodeE, NodeD) }, { NodeA, getDistance(NodeE, NodeA) }, { NodeF, getDistance(NodeE, NodeF) }, { NodeG, getDistance(NodeE, NodeG) }, { NodeH, getDistance(NodeE, NodeH) }, { NodeI, getDistance(NodeE, NodeI) }, { NodeJ, getDistance(NodeE, NodeJ) }, { NodeK, getDistance(NodeE, NodeK) }, { NodeL, getDistance(NodeE, NodeL) }, { NodeM, getDistance(NodeE, NodeM) }, { NodeN, getDistance(NodeE, NodeN) }, { NodeO, getDistance(NodeE, NodeO) }, { NodeP, getDistance(NodeE, NodeP) }, { NodeQ, getDistance(NodeE, NodeQ) }, { NodeR, getDistance(NodeE, NodeR) }, { NodeS, getDistance(NodeE, NodeS) }, { NodeT, getDistance(NodeE, NodeT) }, { NodeU, getDistance(NodeE, NodeU) }, { NodeV, getDistance(NodeE, NodeV) }, { NodeW, getDistance(NodeE, NodeW) }, { NodeX, getDistance(NodeE, NodeX) }, { NodeY, getDistance(NodeE, NodeY) } }); graph.add_vertex(NodeF, new Dictionary <Node, int>() { { NodeB, getDistance(NodeF, NodeB) }, { NodeC, getDistance(NodeF, NodeC) }, { NodeD, getDistance(NodeF, NodeD) }, { NodeE, getDistance(NodeF, NodeE) }, { NodeA, getDistance(NodeF, NodeA) }, { NodeG, getDistance(NodeF, NodeG) }, { NodeH, getDistance(NodeF, NodeH) }, { NodeI, getDistance(NodeF, NodeI) }, { NodeJ, getDistance(NodeF, NodeJ) }, { NodeK, getDistance(NodeF, NodeK) }, { NodeL, getDistance(NodeF, NodeL) }, { NodeM, getDistance(NodeF, NodeM) }, { NodeN, getDistance(NodeF, NodeN) }, { NodeO, getDistance(NodeF, NodeO) }, { NodeP, getDistance(NodeF, NodeP) }, { NodeQ, getDistance(NodeF, NodeQ) }, { NodeR, getDistance(NodeF, NodeR) }, { NodeS, getDistance(NodeF, NodeS) }, { NodeT, getDistance(NodeF, NodeT) }, { NodeU, getDistance(NodeF, NodeU) }, { NodeV, getDistance(NodeF, NodeV) }, { NodeW, getDistance(NodeF, NodeW) }, { NodeX, getDistance(NodeF, NodeX) }, { NodeY, getDistance(NodeF, NodeY) } }); graph.add_vertex(NodeG, new Dictionary <Node, int>() { { NodeB, getDistance(NodeG, NodeB) }, { NodeC, getDistance(NodeG, NodeC) }, { NodeD, getDistance(NodeG, NodeD) }, { NodeE, getDistance(NodeG, NodeE) }, { NodeF, getDistance(NodeG, NodeF) }, { NodeA, getDistance(NodeG, NodeA) }, { NodeH, getDistance(NodeG, NodeH) }, { NodeI, getDistance(NodeG, NodeI) }, { NodeJ, getDistance(NodeG, NodeJ) }, { NodeK, getDistance(NodeG, NodeK) }, { NodeL, getDistance(NodeG, NodeL) }, { NodeM, getDistance(NodeG, NodeM) }, { NodeN, getDistance(NodeG, NodeN) }, { NodeO, getDistance(NodeG, NodeO) }, { NodeP, getDistance(NodeG, NodeP) }, { NodeQ, getDistance(NodeG, NodeQ) }, { NodeR, getDistance(NodeG, NodeR) }, { NodeS, getDistance(NodeG, NodeS) }, { NodeT, getDistance(NodeG, NodeT) }, { NodeU, getDistance(NodeG, NodeU) }, { NodeV, getDistance(NodeG, NodeV) }, { NodeW, getDistance(NodeG, NodeW) }, { NodeX, getDistance(NodeG, NodeX) }, { NodeY, getDistance(NodeG, NodeY) } }); graph.add_vertex(NodeH, new Dictionary <Node, int>() { { NodeB, getDistance(NodeH, NodeB) }, { NodeC, getDistance(NodeH, NodeC) }, { NodeD, getDistance(NodeH, NodeD) }, { NodeE, getDistance(NodeA, NodeE) }, { NodeF, getDistance(NodeH, NodeF) }, { NodeG, getDistance(NodeH, NodeG) }, { NodeA, getDistance(NodeH, NodeA) }, { NodeI, getDistance(NodeH, NodeI) }, { NodeJ, getDistance(NodeH, NodeJ) }, { NodeK, getDistance(NodeH, NodeK) }, { NodeL, getDistance(NodeH, NodeL) }, { NodeM, getDistance(NodeH, NodeM) }, { NodeN, getDistance(NodeH, NodeN) }, { NodeO, getDistance(NodeH, NodeO) }, { NodeP, getDistance(NodeH, NodeP) }, { NodeQ, getDistance(NodeH, NodeQ) }, { NodeR, getDistance(NodeH, NodeR) }, { NodeS, getDistance(NodeH, NodeS) }, { NodeT, getDistance(NodeH, NodeT) }, { NodeU, getDistance(NodeH, NodeU) }, { NodeV, getDistance(NodeH, NodeV) }, { NodeW, getDistance(NodeH, NodeW) }, { NodeX, getDistance(NodeH, NodeX) }, { NodeY, getDistance(NodeH, NodeY) } }); graph.add_vertex(NodeI, new Dictionary <Node, int>() { { NodeB, getDistance(NodeI, NodeB) }, { NodeC, getDistance(NodeI, NodeC) }, { NodeD, getDistance(NodeI, NodeD) }, { NodeE, getDistance(NodeI, NodeE) }, { NodeF, getDistance(NodeI, NodeF) }, { NodeG, getDistance(NodeI, NodeG) }, { NodeH, getDistance(NodeI, NodeH) }, { NodeA, getDistance(NodeI, NodeA) }, { NodeJ, getDistance(NodeI, NodeJ) }, { NodeK, getDistance(NodeI, NodeK) }, { NodeL, getDistance(NodeI, NodeL) }, { NodeM, getDistance(NodeI, NodeM) }, { NodeN, getDistance(NodeI, NodeN) }, { NodeO, getDistance(NodeI, NodeO) }, { NodeP, getDistance(NodeI, NodeP) }, { NodeQ, getDistance(NodeI, NodeQ) }, { NodeR, getDistance(NodeI, NodeR) }, { NodeS, getDistance(NodeI, NodeS) }, { NodeT, getDistance(NodeI, NodeT) }, { NodeU, getDistance(NodeI, NodeU) }, { NodeV, getDistance(NodeI, NodeV) }, { NodeW, getDistance(NodeI, NodeW) }, { NodeX, getDistance(NodeI, NodeX) }, { NodeY, getDistance(NodeI, NodeY) } }); graph.add_vertex(NodeJ, new Dictionary <Node, int>() { { NodeB, getDistance(NodeJ, NodeB) }, { NodeC, getDistance(NodeJ, NodeC) }, { NodeD, getDistance(NodeJ, NodeD) }, { NodeE, getDistance(NodeJ, NodeE) }, { NodeF, getDistance(NodeJ, NodeF) }, { NodeG, getDistance(NodeJ, NodeG) }, { NodeH, getDistance(NodeJ, NodeH) }, { NodeI, getDistance(NodeJ, NodeI) }, { NodeA, getDistance(NodeJ, NodeA) }, { NodeK, getDistance(NodeJ, NodeK) }, { NodeL, getDistance(NodeJ, NodeL) }, { NodeM, getDistance(NodeJ, NodeM) }, { NodeN, getDistance(NodeJ, NodeN) }, { NodeO, getDistance(NodeJ, NodeO) }, { NodeP, getDistance(NodeJ, NodeP) }, { NodeQ, getDistance(NodeJ, NodeQ) }, { NodeR, getDistance(NodeJ, NodeR) }, { NodeS, getDistance(NodeJ, NodeS) }, { NodeT, getDistance(NodeJ, NodeT) }, { NodeU, getDistance(NodeJ, NodeU) }, { NodeV, getDistance(NodeJ, NodeV) }, { NodeW, getDistance(NodeJ, NodeW) }, { NodeX, getDistance(NodeJ, NodeX) }, { NodeY, getDistance(NodeJ, NodeY) } }); graph.add_vertex(NodeK, new Dictionary <Node, int>() { { NodeB, getDistance(NodeK, NodeB) }, { NodeC, getDistance(NodeK, NodeC) }, { NodeD, getDistance(NodeK, NodeD) }, { NodeE, getDistance(NodeK, NodeE) }, { NodeF, getDistance(NodeK, NodeF) }, { NodeG, getDistance(NodeK, NodeG) }, { NodeH, getDistance(NodeK, NodeH) }, { NodeI, getDistance(NodeK, NodeI) }, { NodeJ, getDistance(NodeK, NodeJ) }, { NodeA, getDistance(NodeK, NodeA) }, { NodeL, getDistance(NodeK, NodeL) }, { NodeM, getDistance(NodeK, NodeM) }, { NodeN, getDistance(NodeK, NodeN) }, { NodeO, getDistance(NodeK, NodeO) }, { NodeP, getDistance(NodeK, NodeP) }, { NodeQ, getDistance(NodeK, NodeQ) }, { NodeR, getDistance(NodeK, NodeR) }, { NodeS, getDistance(NodeK, NodeS) }, { NodeT, getDistance(NodeK, NodeT) }, { NodeU, getDistance(NodeK, NodeU) }, { NodeV, getDistance(NodeK, NodeV) }, { NodeW, getDistance(NodeK, NodeW) }, { NodeX, getDistance(NodeK, NodeX) }, { NodeY, getDistance(NodeK, NodeY) } }); graph.add_vertex(NodeL, new Dictionary <Node, int>() { { NodeB, getDistance(NodeL, NodeB) }, { NodeC, getDistance(NodeL, NodeC) }, { NodeD, getDistance(NodeL, NodeD) }, { NodeE, getDistance(NodeL, NodeE) }, { NodeF, getDistance(NodeL, NodeF) }, { NodeG, getDistance(NodeL, NodeG) }, { NodeH, getDistance(NodeL, NodeH) }, { NodeI, getDistance(NodeL, NodeI) }, { NodeJ, getDistance(NodeL, NodeJ) }, { NodeK, getDistance(NodeL, NodeK) }, { NodeA, getDistance(NodeL, NodeA) }, { NodeM, getDistance(NodeL, NodeM) }, { NodeN, getDistance(NodeL, NodeN) }, { NodeO, getDistance(NodeL, NodeO) }, { NodeP, getDistance(NodeL, NodeP) }, { NodeQ, getDistance(NodeL, NodeQ) }, { NodeR, getDistance(NodeL, NodeR) }, { NodeS, getDistance(NodeL, NodeS) }, { NodeT, getDistance(NodeL, NodeT) }, { NodeU, getDistance(NodeL, NodeU) }, { NodeV, getDistance(NodeL, NodeV) }, { NodeW, getDistance(NodeL, NodeW) }, { NodeX, getDistance(NodeL, NodeX) }, { NodeY, getDistance(NodeL, NodeY) } }); graph.add_vertex(NodeM, new Dictionary <Node, int>() { { NodeB, getDistance(NodeM, NodeB) }, { NodeC, getDistance(NodeM, NodeC) }, { NodeD, getDistance(NodeM, NodeD) }, { NodeE, getDistance(NodeM, NodeE) }, { NodeF, getDistance(NodeM, NodeF) }, { NodeG, getDistance(NodeM, NodeG) }, { NodeH, getDistance(NodeM, NodeH) }, { NodeI, getDistance(NodeM, NodeI) }, { NodeJ, getDistance(NodeM, NodeJ) }, { NodeK, getDistance(NodeM, NodeK) }, { NodeL, getDistance(NodeM, NodeL) }, { NodeA, getDistance(NodeM, NodeA) }, { NodeN, getDistance(NodeM, NodeN) }, { NodeO, getDistance(NodeM, NodeO) }, { NodeP, getDistance(NodeM, NodeP) }, { NodeQ, getDistance(NodeM, NodeQ) }, { NodeR, getDistance(NodeM, NodeR) }, { NodeS, getDistance(NodeM, NodeS) }, { NodeT, getDistance(NodeM, NodeT) }, { NodeU, getDistance(NodeM, NodeU) }, { NodeV, getDistance(NodeM, NodeV) }, { NodeW, getDistance(NodeM, NodeW) }, { NodeX, getDistance(NodeM, NodeX) }, { NodeY, getDistance(NodeM, NodeY) } }); graph.add_vertex(NodeN, new Dictionary <Node, int>() { { NodeB, getDistance(NodeN, NodeB) }, { NodeC, getDistance(NodeN, NodeC) }, { NodeD, getDistance(NodeN, NodeD) }, { NodeE, getDistance(NodeN, NodeE) }, { NodeF, getDistance(NodeN, NodeF) }, { NodeG, getDistance(NodeN, NodeG) }, { NodeH, getDistance(NodeN, NodeH) }, { NodeI, getDistance(NodeN, NodeI) }, { NodeJ, getDistance(NodeN, NodeJ) }, { NodeK, getDistance(NodeN, NodeK) }, { NodeL, getDistance(NodeN, NodeL) }, { NodeM, getDistance(NodeN, NodeM) }, { NodeA, getDistance(NodeN, NodeA) }, { NodeO, getDistance(NodeN, NodeO) }, { NodeP, getDistance(NodeN, NodeP) }, { NodeQ, getDistance(NodeN, NodeQ) }, { NodeR, getDistance(NodeN, NodeR) }, { NodeS, getDistance(NodeN, NodeS) }, { NodeT, getDistance(NodeN, NodeT) }, { NodeU, getDistance(NodeN, NodeU) }, { NodeV, getDistance(NodeN, NodeV) }, { NodeW, getDistance(NodeN, NodeW) }, { NodeX, getDistance(NodeN, NodeX) }, { NodeY, getDistance(NodeN, NodeY) } }); graph.add_vertex(NodeO, new Dictionary <Node, int>() { { NodeB, getDistance(NodeO, NodeB) }, { NodeC, getDistance(NodeO, NodeC) }, { NodeD, getDistance(NodeO, NodeD) }, { NodeE, getDistance(NodeO, NodeE) }, { NodeF, getDistance(NodeO, NodeF) }, { NodeG, getDistance(NodeO, NodeG) }, { NodeH, getDistance(NodeO, NodeH) }, { NodeI, getDistance(NodeO, NodeI) }, { NodeJ, getDistance(NodeO, NodeJ) }, { NodeK, getDistance(NodeO, NodeK) }, { NodeL, getDistance(NodeO, NodeL) }, { NodeM, getDistance(NodeO, NodeM) }, { NodeN, getDistance(NodeO, NodeN) }, { NodeA, getDistance(NodeO, NodeA) }, { NodeP, getDistance(NodeO, NodeP) }, { NodeQ, getDistance(NodeO, NodeQ) }, { NodeR, getDistance(NodeO, NodeR) }, { NodeS, getDistance(NodeO, NodeS) }, { NodeT, getDistance(NodeO, NodeT) }, { NodeU, getDistance(NodeO, NodeU) }, { NodeV, getDistance(NodeO, NodeV) }, { NodeW, getDistance(NodeO, NodeW) }, { NodeX, getDistance(NodeO, NodeX) }, { NodeY, getDistance(NodeO, NodeY) } }); graph.add_vertex(NodeP, new Dictionary <Node, int>() { { NodeB, getDistance(NodeP, NodeB) }, { NodeC, getDistance(NodeP, NodeC) }, { NodeD, getDistance(NodeP, NodeD) }, { NodeE, getDistance(NodeP, NodeE) }, { NodeF, getDistance(NodeP, NodeF) }, { NodeG, getDistance(NodeP, NodeG) }, { NodeH, getDistance(NodeP, NodeH) }, { NodeI, getDistance(NodeP, NodeI) }, { NodeJ, getDistance(NodeP, NodeJ) }, { NodeK, getDistance(NodeP, NodeK) }, { NodeL, getDistance(NodeP, NodeL) }, { NodeM, getDistance(NodeP, NodeM) }, { NodeN, getDistance(NodeP, NodeN) }, { NodeO, getDistance(NodeP, NodeO) }, { NodeA, getDistance(NodeP, NodeA) }, { NodeQ, getDistance(NodeP, NodeQ) }, { NodeR, getDistance(NodeP, NodeR) }, { NodeS, getDistance(NodeP, NodeS) }, { NodeT, getDistance(NodeP, NodeT) }, { NodeU, getDistance(NodeP, NodeU) }, { NodeV, getDistance(NodeP, NodeV) }, { NodeW, getDistance(NodeP, NodeW) }, { NodeX, getDistance(NodeP, NodeX) }, { NodeY, getDistance(NodeP, NodeY) } }); graph.add_vertex(NodeQ, new Dictionary <Node, int>() { { NodeB, getDistance(NodeQ, NodeB) }, { NodeC, getDistance(NodeQ, NodeC) }, { NodeD, getDistance(NodeQ, NodeD) }, { NodeE, getDistance(NodeQ, NodeE) }, { NodeF, getDistance(NodeQ, NodeF) }, { NodeG, getDistance(NodeQ, NodeG) }, { NodeH, getDistance(NodeQ, NodeH) }, { NodeI, getDistance(NodeQ, NodeI) }, { NodeJ, getDistance(NodeQ, NodeJ) }, { NodeK, getDistance(NodeQ, NodeK) }, { NodeL, getDistance(NodeQ, NodeL) }, { NodeM, getDistance(NodeQ, NodeM) }, { NodeN, getDistance(NodeQ, NodeN) }, { NodeO, getDistance(NodeQ, NodeO) }, { NodeP, getDistance(NodeQ, NodeP) }, { NodeA, getDistance(NodeQ, NodeA) }, { NodeR, getDistance(NodeQ, NodeR) }, { NodeS, getDistance(NodeQ, NodeS) }, { NodeT, getDistance(NodeQ, NodeT) }, { NodeU, getDistance(NodeQ, NodeU) }, { NodeV, getDistance(NodeQ, NodeV) }, { NodeW, getDistance(NodeQ, NodeW) }, { NodeX, getDistance(NodeQ, NodeX) }, { NodeY, getDistance(NodeQ, NodeY) } }); graph.add_vertex(NodeR, new Dictionary <Node, int>() { { NodeB, getDistance(NodeR, NodeB) }, { NodeC, getDistance(NodeR, NodeC) }, { NodeD, getDistance(NodeR, NodeD) }, { NodeE, getDistance(NodeR, NodeE) }, { NodeF, getDistance(NodeR, NodeF) }, { NodeG, getDistance(NodeR, NodeG) }, { NodeH, getDistance(NodeR, NodeH) }, { NodeI, getDistance(NodeR, NodeI) }, { NodeJ, getDistance(NodeR, NodeJ) }, { NodeK, getDistance(NodeR, NodeK) }, { NodeL, getDistance(NodeR, NodeL) }, { NodeM, getDistance(NodeR, NodeM) }, { NodeN, getDistance(NodeR, NodeN) }, { NodeO, getDistance(NodeR, NodeO) }, { NodeP, getDistance(NodeR, NodeP) }, { NodeQ, getDistance(NodeA, NodeQ) }, { NodeA, getDistance(NodeR, NodeA) }, { NodeS, getDistance(NodeR, NodeS) }, { NodeT, getDistance(NodeR, NodeT) }, { NodeU, getDistance(NodeR, NodeU) }, { NodeV, getDistance(NodeR, NodeV) }, { NodeW, getDistance(NodeR, NodeW) }, { NodeX, getDistance(NodeR, NodeX) }, { NodeY, getDistance(NodeR, NodeY) } }); graph.add_vertex(NodeS, new Dictionary <Node, int>() { { NodeB, getDistance(NodeS, NodeB) }, { NodeC, getDistance(NodeS, NodeC) }, { NodeD, getDistance(NodeS, NodeD) }, { NodeE, getDistance(NodeS, NodeE) }, { NodeF, getDistance(NodeS, NodeF) }, { NodeG, getDistance(NodeS, NodeG) }, { NodeH, getDistance(NodeS, NodeH) }, { NodeI, getDistance(NodeS, NodeI) }, { NodeJ, getDistance(NodeS, NodeJ) }, { NodeK, getDistance(NodeS, NodeK) }, { NodeL, getDistance(NodeS, NodeL) }, { NodeM, getDistance(NodeS, NodeM) }, { NodeN, getDistance(NodeS, NodeN) }, { NodeO, getDistance(NodeS, NodeO) }, { NodeP, getDistance(NodeS, NodeP) }, { NodeQ, getDistance(NodeS, NodeQ) }, { NodeR, getDistance(NodeS, NodeR) }, { NodeA, getDistance(NodeS, NodeA) }, { NodeT, getDistance(NodeS, NodeT) }, { NodeU, getDistance(NodeS, NodeU) }, { NodeV, getDistance(NodeS, NodeV) }, { NodeW, getDistance(NodeS, NodeW) }, { NodeX, getDistance(NodeS, NodeX) }, { NodeY, getDistance(NodeS, NodeY) } }); graph.add_vertex(NodeT, new Dictionary <Node, int>() { { NodeB, getDistance(NodeT, NodeB) }, { NodeC, getDistance(NodeT, NodeC) }, { NodeD, getDistance(NodeT, NodeD) }, { NodeE, getDistance(NodeT, NodeE) }, { NodeF, getDistance(NodeT, NodeF) }, { NodeG, getDistance(NodeT, NodeG) }, { NodeH, getDistance(NodeT, NodeH) }, { NodeI, getDistance(NodeT, NodeI) }, { NodeJ, getDistance(NodeT, NodeJ) }, { NodeK, getDistance(NodeT, NodeK) }, { NodeL, getDistance(NodeT, NodeL) }, { NodeM, getDistance(NodeT, NodeM) }, { NodeN, getDistance(NodeT, NodeN) }, { NodeO, getDistance(NodeT, NodeO) }, { NodeP, getDistance(NodeT, NodeP) }, { NodeQ, getDistance(NodeT, NodeQ) }, { NodeR, getDistance(NodeT, NodeR) }, { NodeS, getDistance(NodeT, NodeS) }, { NodeA, getDistance(NodeT, NodeA) }, { NodeU, getDistance(NodeT, NodeU) }, { NodeV, getDistance(NodeT, NodeV) }, { NodeW, getDistance(NodeT, NodeW) }, { NodeX, getDistance(NodeT, NodeX) }, { NodeY, getDistance(NodeT, NodeY) } }); graph.add_vertex(NodeU, new Dictionary <Node, int>() { { NodeB, getDistance(NodeU, NodeB) }, { NodeC, getDistance(NodeU, NodeC) }, { NodeD, getDistance(NodeU, NodeD) }, { NodeE, getDistance(NodeU, NodeE) }, { NodeF, getDistance(NodeU, NodeF) }, { NodeG, getDistance(NodeU, NodeG) }, { NodeH, getDistance(NodeU, NodeH) }, { NodeI, getDistance(NodeU, NodeI) }, { NodeJ, getDistance(NodeU, NodeJ) }, { NodeK, getDistance(NodeU, NodeK) }, { NodeL, getDistance(NodeU, NodeL) }, { NodeM, getDistance(NodeU, NodeM) }, { NodeN, getDistance(NodeU, NodeN) }, { NodeO, getDistance(NodeU, NodeO) }, { NodeP, getDistance(NodeU, NodeP) }, { NodeQ, getDistance(NodeU, NodeQ) }, { NodeR, getDistance(NodeU, NodeR) }, { NodeS, getDistance(NodeU, NodeS) }, { NodeT, getDistance(NodeU, NodeT) }, { NodeA, getDistance(NodeU, NodeA) }, { NodeV, getDistance(NodeU, NodeV) }, { NodeW, getDistance(NodeU, NodeW) }, { NodeX, getDistance(NodeU, NodeX) }, { NodeY, getDistance(NodeU, NodeY) } }); graph.add_vertex(NodeV, new Dictionary <Node, int>() { { NodeB, getDistance(NodeV, NodeB) }, { NodeC, getDistance(NodeV, NodeC) }, { NodeD, getDistance(NodeV, NodeD) }, { NodeE, getDistance(NodeV, NodeE) }, { NodeF, getDistance(NodeV, NodeF) }, { NodeG, getDistance(NodeV, NodeG) }, { NodeH, getDistance(NodeV, NodeH) }, { NodeI, getDistance(NodeV, NodeI) }, { NodeJ, getDistance(NodeV, NodeJ) }, { NodeK, getDistance(NodeV, NodeK) }, { NodeL, getDistance(NodeV, NodeL) }, { NodeM, getDistance(NodeV, NodeM) }, { NodeN, getDistance(NodeV, NodeN) }, { NodeO, getDistance(NodeV, NodeO) }, { NodeP, getDistance(NodeV, NodeP) }, { NodeQ, getDistance(NodeV, NodeQ) }, { NodeR, getDistance(NodeV, NodeR) }, { NodeS, getDistance(NodeV, NodeS) }, { NodeT, getDistance(NodeV, NodeT) }, { NodeU, getDistance(NodeV, NodeU) }, { NodeA, getDistance(NodeV, NodeA) }, { NodeW, getDistance(NodeV, NodeW) }, { NodeX, getDistance(NodeV, NodeX) }, { NodeY, getDistance(NodeV, NodeY) } }); graph.add_vertex(NodeW, new Dictionary <Node, int>() { { NodeB, getDistance(NodeW, NodeB) }, { NodeC, getDistance(NodeW, NodeC) }, { NodeD, getDistance(NodeW, NodeD) }, { NodeE, getDistance(NodeW, NodeE) }, { NodeF, getDistance(NodeW, NodeF) }, { NodeG, getDistance(NodeW, NodeG) }, { NodeH, getDistance(NodeW, NodeH) }, { NodeI, getDistance(NodeW, NodeI) }, { NodeJ, getDistance(NodeW, NodeJ) }, { NodeK, getDistance(NodeW, NodeK) }, { NodeL, getDistance(NodeW, NodeL) }, { NodeM, getDistance(NodeW, NodeM) }, { NodeN, getDistance(NodeW, NodeN) }, { NodeO, getDistance(NodeW, NodeO) }, { NodeP, getDistance(NodeW, NodeP) }, { NodeQ, getDistance(NodeW, NodeQ) }, { NodeR, getDistance(NodeW, NodeR) }, { NodeS, getDistance(NodeW, NodeS) }, { NodeT, getDistance(NodeW, NodeT) }, { NodeU, getDistance(NodeW, NodeU) }, { NodeV, getDistance(NodeW, NodeV) }, { NodeA, getDistance(NodeW, NodeA) }, { NodeX, getDistance(NodeW, NodeX) }, { NodeY, getDistance(NodeW, NodeY) } }); graph.add_vertex(NodeX, new Dictionary <Node, int>() { { NodeB, getDistance(NodeX, NodeB) }, { NodeC, getDistance(NodeX, NodeC) }, { NodeD, getDistance(NodeX, NodeD) }, { NodeE, getDistance(NodeX, NodeE) }, { NodeF, getDistance(NodeX, NodeF) }, { NodeG, getDistance(NodeX, NodeG) }, { NodeH, getDistance(NodeX, NodeH) }, { NodeI, getDistance(NodeX, NodeI) }, { NodeJ, getDistance(NodeX, NodeJ) }, { NodeK, getDistance(NodeX, NodeK) }, { NodeL, getDistance(NodeX, NodeL) }, { NodeM, getDistance(NodeX, NodeM) }, { NodeN, getDistance(NodeX, NodeN) }, { NodeO, getDistance(NodeX, NodeO) }, { NodeP, getDistance(NodeX, NodeP) }, { NodeQ, getDistance(NodeX, NodeQ) }, { NodeR, getDistance(NodeX, NodeR) }, { NodeS, getDistance(NodeX, NodeS) }, { NodeT, getDistance(NodeX, NodeT) }, { NodeU, getDistance(NodeX, NodeU) }, { NodeV, getDistance(NodeX, NodeV) }, { NodeW, getDistance(NodeX, NodeW) }, { NodeA, getDistance(NodeX, NodeA) }, { NodeY, getDistance(NodeA, NodeY) } }); graph.add_vertex(NodeY, new Dictionary <Node, int>() { { NodeB, getDistance(NodeY, NodeB) }, { NodeC, getDistance(NodeY, NodeC) }, { NodeD, getDistance(NodeY, NodeD) }, { NodeE, getDistance(NodeY, NodeE) }, { NodeF, getDistance(NodeY, NodeF) }, { NodeG, getDistance(NodeY, NodeG) }, { NodeH, getDistance(NodeY, NodeH) }, { NodeI, getDistance(NodeY, NodeI) }, { NodeJ, getDistance(NodeY, NodeJ) }, { NodeK, getDistance(NodeY, NodeK) }, { NodeL, getDistance(NodeY, NodeL) }, { NodeM, getDistance(NodeY, NodeM) }, { NodeN, getDistance(NodeY, NodeN) }, { NodeO, getDistance(NodeY, NodeO) }, { NodeP, getDistance(NodeY, NodeP) }, { NodeQ, getDistance(NodeY, NodeQ) }, { NodeR, getDistance(NodeY, NodeR) }, { NodeS, getDistance(NodeY, NodeS) }, { NodeT, getDistance(NodeY, NodeT) }, { NodeU, getDistance(NodeY, NodeU) }, { NodeV, getDistance(NodeY, NodeV) }, { NodeW, getDistance(NodeY, NodeW) }, { NodeX, getDistance(NodeY, NodeX) }, { NodeA, getDistance(NodeY, NodeA) } }); return(nodes); }