Esempio n. 1
0
        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();
        }
Esempio n. 2
0
 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] }
             });
         }
     }
 }
Esempio n. 3
0
        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();
        }
Esempio n. 4
0
        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);
        }