Пример #1
0
        /// <summary>
        /// Initialise the graph
        /// </summary>
        private void InitGraph()
        {
            //Start
            g.add_vertex('A', new Dictionary <char, int>()
            {
                { 'B', 10 }, { 'K', 10 }
            });

            //Right Lane
            g.add_vertex('B', new Dictionary <char, int>()
            {
                { 'A', 10 }, { 'C', 5 }
            });
            g.add_vertex('C', new Dictionary <char, int>()
            {
                { 'B', 5 }, { 'D', 5 }, { 'N', 5 }
            });
            g.add_vertex('D', new Dictionary <char, int>()
            {
                { 'C', 5 }, { 'E', 5 }, { 'T', 5 }
            });
            g.add_vertex('E', new Dictionary <char, int>()
            {
                { 'D', 5 }, { 'F', 5 }, { 'Z', 5 }
            });
            g.add_vertex('F', new Dictionary <char, int>()
            {
                { 'E', 5 }, { 'G', 20 }
            });

            //Left Lane
            g.add_vertex('K', new Dictionary <char, int>()
            {
                { 'A', 10 }, { 'J', 5 }
            });
            g.add_vertex('J', new Dictionary <char, int>()
            {
                { 'K', 5 }, { 'I', 5 }, { 'L', 5 }
            });
            g.add_vertex('I', new Dictionary <char, int>()
            {
                { 'J', 5 }, { 'H', 5 }, { 'R', 5 }
            });
            g.add_vertex('H', new Dictionary <char, int>()
            {
                { 'I', 5 }, { 'G', 5 }, { 'X', 5 }
            });
            g.add_vertex('G', new Dictionary <char, int>()
            {
                { 'H', 5 }, { 'F', 20 }
            });

            //First Inner Sector
            g.add_vertex('L', new Dictionary <char, int>()
            {
                { 'J', 5 }, { 'M', 5 }, { 'Q', 2 }
            });
            g.add_vertex('M', new Dictionary <char, int>()
            {
                { 'N', 5 }, { 'L', 5 }, { 'P', 2 }
            });
            g.add_vertex('N', new Dictionary <char, int>()
            {
                { 'C', 5 }, { 'M', 5 }, { 'O', 2 }
            });
            g.add_vertex('O', new Dictionary <char, int>()
            {
                { 'N', 2 }
            });
            g.add_vertex('P', new Dictionary <char, int>()
            {
                { 'M', 2 }
            });
            g.add_vertex('Q', new Dictionary <char, int>()
            {
                { 'L', 2 }
            });

            //Second Inner Sector
            g.add_vertex('R', new Dictionary <char, int>()
            {
                { 'I', 5 }, { 'S', 5 }, { 'W', 2 }
            });
            g.add_vertex('S', new Dictionary <char, int>()
            {
                { 'T', 5 }, { 'R', 5 }, { 'V', 2 }
            });
            g.add_vertex('T', new Dictionary <char, int>()
            {
                { 'D', 5 }, { 'S', 5 }, { 'U', 2 }
            });
            g.add_vertex('U', new Dictionary <char, int>()
            {
                { 'T', 2 }
            });
            g.add_vertex('V', new Dictionary <char, int>()
            {
                { 'S', 2 }
            });
            g.add_vertex('W', new Dictionary <char, int>()
            {
                { 'R', 2 }
            });

            //Third Inner Sector
            g.add_vertex('X', new Dictionary <char, int>()
            {
                { 'H', 5 }, { 'Y', 5 }, { '3', 2 }
            });
            g.add_vertex('Y', new Dictionary <char, int>()
            {
                { 'Z', 5 }, { 'X', 5 }, { '2', 2 }
            });
            g.add_vertex('Z', new Dictionary <char, int>()
            {
                { 'E', 5 }, { 'Y', 5 }, { '1', 2 }
            });
            g.add_vertex('1', new Dictionary <char, int>()
            {
                { 'Z', 2 }
            });
            g.add_vertex('2', new Dictionary <char, int>()
            {
                { 'Y', 2 }
            });
            g.add_vertex('3', new Dictionary <char, int>()
            {
                { 'X', 2 }
            });
        }
Пример #2
0
        public Graph Graphy()
        {
            Graph g = new Graph();

            g.add_vertex("null3", new Dictionary <string, int>()
            {
                { "null2", 4 }
            });
            g.add_vertex("null2", new Dictionary <string, int>()
            {
                { "null1", 4 }, { "null3", 4 }
            });
            g.add_vertex("null1", new Dictionary <string, int>()
            {
                { "A", 4 }, { "null2", 4 }
            });
            g.add_vertex("A", new Dictionary <string, int>()
            {
                { "B", 15 }, { "A1", 3 }, { "A2", 6 }, { "A3", 9 }, { "A4", 12 }, { "null1", 4 }
            });
            g.add_vertex("A1", new Dictionary <string, int>()
            {
                { "B", 12 }
            });
            g.add_vertex("A2", new Dictionary <string, int>()
            {
                { "B", 9 }
            });
            g.add_vertex("A3", new Dictionary <string, int>()
            {
                { "B", 6 }
            });
            g.add_vertex("A4", new Dictionary <string, int>()
            {
                { "B", 3 }
            });
            g.add_vertex("B", new Dictionary <string, int>()
            {
                { "C", 9 }, { "J", 9 }, { "B1", 3 }, { "B2", 6 }, { "B3", 9 }, { "B4", 12 }
            });
            g.add_vertex("B1", new Dictionary <string, int>()
            {
                { "J", 12 }
            });
            g.add_vertex("B2", new Dictionary <string, int>()
            {
                { "J", 9 }
            });
            g.add_vertex("B3", new Dictionary <string, int>()
            {
                { "J", 6 }
            });
            g.add_vertex("B4", new Dictionary <string, int>()
            {
                { "J", 3 }
            });
            g.add_vertex("C", new Dictionary <string, int>()
            {
                { "D", 9 }, { "F", 15 }, { "C1", 3 }, { "C2", 6 }, { "C3", 9 }, { "C4", 12 }
            });
            g.add_vertex("C1", new Dictionary <string, int>()
            {
                { "F", 12 }
            });
            g.add_vertex("C2", new Dictionary <string, int>()
            {
                { "F", 9 }
            });
            g.add_vertex("C3", new Dictionary <string, int>()
            {
                { "F", 6 }
            });
            g.add_vertex("C4", new Dictionary <string, int>()
            {
                { "F", 3 }
            });
            g.add_vertex("D", new Dictionary <string, int>()
            {
                { "E", 15 }, { "N", 9 }, { "D1", 3 }, { "D2", 6 }, { "D3", 9 }, { "D4", 12 }
            });
            g.add_vertex("D1", new Dictionary <string, int>()
            {
                { "E", 12 }
            });
            g.add_vertex("D2", new Dictionary <string, int>()
            {
                { "E", 9 }
            });
            g.add_vertex("D3", new Dictionary <string, int>()
            {
                { "E", 6 }
            });
            g.add_vertex("D4", new Dictionary <string, int>()
            {
                { "E", 3 }
            });
            g.add_vertex("E", new Dictionary <string, int>()
            {
                { "F", 9 }, { "G", 15 }, { "E1", 3 }, { "E2", 6 }, { "E3", 9 }, { "E4", 12 }
            });
            g.add_vertex("E1", new Dictionary <string, int>()
            {
                { "G", 12 }
            });
            g.add_vertex("E2", new Dictionary <string, int>()
            {
                { "G", 9 }
            });
            g.add_vertex("E3", new Dictionary <string, int>()
            {
                { "G", 6 }
            });
            g.add_vertex("E4", new Dictionary <string, int>()
            {
                { "G", 3 }
            });
            g.add_vertex("F", new Dictionary <string, int>()
            {
                { "A", 9 }, { "H", 15 }, { "F1", 3 }, { "F2", 6 }, { "F3", 9 }, { "F4", 12 }
            });
            g.add_vertex("F1", new Dictionary <string, int>()
            {
                { "H", 12 }
            });
            g.add_vertex("F2", new Dictionary <string, int>()
            {
                { "H", 9 }
            });
            g.add_vertex("F3", new Dictionary <string, int>()
            {
                { "H", 6 }
            });
            g.add_vertex("F4", new Dictionary <string, int>()
            {
                { "H", 3 }
            });
            g.add_vertex("G", new Dictionary <string, int>()
            {
                { "H", 9 }, { "R", 15 }, { "G1", 3 }, { "G2", 6 }, { "G3", 9 }, { "G4", 12 }
            });
            g.add_vertex("G1", new Dictionary <string, int>()
            {
                { "R", 12 }
            });
            g.add_vertex("G2", new Dictionary <string, int>()
            {
                { "R", 9 }
            });
            g.add_vertex("G3", new Dictionary <string, int>()
            {
                { "R", 6 }
            });
            g.add_vertex("G4", new Dictionary <string, int>()
            {
                { "R", 3 }
            });
            g.add_vertex("H", new Dictionary <string, int>()
            {
                { "I", 9 }, { "S", 15 }, { "H1", 3 }, { "H2", 6 }, { "H3", 9 }, { "H4", 12 }
            });
            g.add_vertex("H1", new Dictionary <string, int>()
            {
                { "S", 12 }
            });
            g.add_vertex("H2", new Dictionary <string, int>()
            {
                { "S", 9 }
            });
            g.add_vertex("H3", new Dictionary <string, int>()
            {
                { "S", 6 }
            });
            g.add_vertex("H4", new Dictionary <string, int>()
            {
                { "S", 3 }
            });
            g.add_vertex("I", new Dictionary <string, int>()
            {
                { "A", 15 }, { "I1", 3 }, { "I2", 6 }, { "I3", 9 }, { "I4", 12 }
            });
            g.add_vertex("I1", new Dictionary <string, int>()
            {
                { "A", 12 }
            });
            g.add_vertex("I2", new Dictionary <string, int>()
            {
                { "A", 9 }
            });
            g.add_vertex("I3", new Dictionary <string, int>()
            {
                { "A", 6 }
            });
            g.add_vertex("I4", new Dictionary <string, int>()
            {
                { "A", 3 }
            });
            g.add_vertex("J", new Dictionary <string, int>()
            {
                { "K", 9 }
            });
            g.add_vertex("K", new Dictionary <string, int>()
            {
                { "L", 9 }, { "C", 15 }, { "K1", 3 }, { "K2", 6 }, { "K3", 9 }, { "K4", 12 }
            });
            g.add_vertex("K1", new Dictionary <string, int>()
            {
                { "C", 12 }
            });
            g.add_vertex("K2", new Dictionary <string, int>()
            {
                { "C", 9 }
            });
            g.add_vertex("K3", new Dictionary <string, int>()
            {
                { "C", 6 }
            });
            g.add_vertex("K4", new Dictionary <string, int>()
            {
                { "C", 3 }
            });
            g.add_vertex("L", new Dictionary <string, int>()
            {
                { "M", 9 }, { "D", 15 }, { "L1", 3 }, { "L2", 6 }, { "L3", 9 }, { "L4", 12 }
            });
            g.add_vertex("L1", new Dictionary <string, int>()
            {
                { "D", 12 }
            });
            g.add_vertex("L2", new Dictionary <string, int>()
            {
                { "D", 9 }
            });
            g.add_vertex("L3", new Dictionary <string, int>()
            {
                { "D", 6 }
            });
            g.add_vertex("L4", new Dictionary <string, int>()
            {
                { "D", 3 }
            });
            g.add_vertex("M", new Dictionary <string, int>()
            {
                { "N", 15 }, { "M1", 3 }, { "M2", 6 }, { "M3", 9 }, { "M4", 12 }
            });
            g.add_vertex("M1", new Dictionary <string, int>()
            {
                { "N", 12 }
            });
            g.add_vertex("M2", new Dictionary <string, int>()
            {
                { "N", 9 }
            });
            g.add_vertex("M3", new Dictionary <string, int>()
            {
                { "N", 6 }
            });
            g.add_vertex("M4", new Dictionary <string, int>()
            {
                { "N", 3 }
            });
            g.add_vertex("N", new Dictionary <string, int>()
            {
                { "O", 15 }, { "N1", 3 }, { "N2", 6 }, { "N3", 9 }, { "N4", 12 }
            });
            g.add_vertex("N1", new Dictionary <string, int>()
            {
                { "O", 12 }
            });
            g.add_vertex("N2", new Dictionary <string, int>()
            {
                { "O", 9 }
            });
            g.add_vertex("N3", new Dictionary <string, int>()
            {
                { "O", 6 }
            });
            g.add_vertex("N4", new Dictionary <string, int>()
            {
                { "O", 3 }
            });
            g.add_vertex("O", new Dictionary <string, int>()
            {
                { "P", 15 }, { "E", 15 }, { "O1", 3 }, { "O2", 6 }, { "O3", 9 }, { "O4", 12 }
            });
            g.add_vertex("O1", new Dictionary <string, int>()
            {
                { "P", 12 }
            });
            g.add_vertex("O2", new Dictionary <string, int>()
            {
                { "P", 9 }
            });
            g.add_vertex("O3", new Dictionary <string, int>()
            {
                { "P", 6 }
            });
            g.add_vertex("O4", new Dictionary <string, int>()
            {
                { "P", 3 }
            });
            g.add_vertex("P", new Dictionary <string, int>()
            {
                { "Q", 15 }, { "G", 15 }, { "P1", 3 }, { "P2", 6 }, { "P3", 9 }, { "P4", 12 }
            });
            g.add_vertex("P1", new Dictionary <string, int>()
            {
                { "Q", 12 }
            });
            g.add_vertex("P2", new Dictionary <string, int>()
            {
                { "Q", 9 }
            });
            g.add_vertex("P3", new Dictionary <string, int>()
            {
                { "Q", 6 }
            });
            g.add_vertex("P4", new Dictionary <string, int>()
            {
                { "Q", 3 }
            });
            g.add_vertex("Q", new Dictionary <string, int>()
            {
                { "R", 9 }
            });
            g.add_vertex("R", new Dictionary <string, int>()
            {
                { "S", 9 }
            });
            g.add_vertex("S", new Dictionary <string, int>()
            {
                { "T", 9 }
            });
            g.add_vertex("T", new Dictionary <string, int>()
            {
                { "I", 15 }, { "T1", 3 }, { "T2", 6 }, { "T3", 9 }, { "T4", 12 }
            });
            g.add_vertex("T1", new Dictionary <string, int>()
            {
                { "I", 12 }
            });
            g.add_vertex("T2", new Dictionary <string, int>()
            {
                { "I", 9 }
            });
            g.add_vertex("T3", new Dictionary <string, int>()
            {
                { "I", 6 }
            });
            g.add_vertex("T4", new Dictionary <string, int>()
            {
                { "I", 3 }
            });

            return(g);
        }
Пример #3
0
        private List <string> FindRoute(string start, string destination)
        {
            Graph         g      = new Graph();
            List <string> Points = new List <string>();

            g.add_vertex("null3", new Dictionary <string, int>()
            {
                { "null2", 4 }
            });
            g.add_vertex("null2", new Dictionary <string, int>()
            {
                { "null1", 4 }, { "null3", 4 }
            });
            g.add_vertex("null1", new Dictionary <string, int>()
            {
                { "A", 4 }, { "null2", 4 }
            });
            g.add_vertex("A", new Dictionary <string, int>()
            {
                { "B", 15 }, { "A1", 3 }, { "A2", 6 }, { "A3", 9 }, { "A4", 12 }, { "null1", 4 }
            });
            g.add_vertex("A1", new Dictionary <string, int>()
            {
                { "B", 12 }
            });
            g.add_vertex("A2", new Dictionary <string, int>()
            {
                { "B", 9 }
            });
            g.add_vertex("A3", new Dictionary <string, int>()
            {
                { "B", 6 }
            });
            g.add_vertex("A4", new Dictionary <string, int>()
            {
                { "B", 3 }
            });
            g.add_vertex("B", new Dictionary <string, int>()
            {
                { "C", 9 }, { "J", 9 }, { "B1", 3 }, { "B2", 6 }, { "B3", 9 }, { "B4", 12 }
            });
            g.add_vertex("B1", new Dictionary <string, int>()
            {
                { "J", 12 }
            });
            g.add_vertex("B2", new Dictionary <string, int>()
            {
                { "J", 9 }
            });
            g.add_vertex("B3", new Dictionary <string, int>()
            {
                { "J", 6 }
            });
            g.add_vertex("B4", new Dictionary <string, int>()
            {
                { "J", 3 }
            });
            g.add_vertex("C", new Dictionary <string, int>()
            {
                { "D", 9 }, { "F", 15 }, { "C1", 3 }, { "C2", 6 }, { "C3", 9 }, { "C4", 12 }
            });
            g.add_vertex("C1", new Dictionary <string, int>()
            {
                { "F", 12 }
            });
            g.add_vertex("C2", new Dictionary <string, int>()
            {
                { "F", 9 }
            });
            g.add_vertex("C3", new Dictionary <string, int>()
            {
                { "F", 6 }
            });
            g.add_vertex("C4", new Dictionary <string, int>()
            {
                { "F", 3 }
            });
            g.add_vertex("D", new Dictionary <string, int>()
            {
                { "E", 15 }, { "N", 9 }, { "D1", 3 }, { "D2", 6 }, { "D3", 9 }, { "D4", 12 }
            });
            g.add_vertex("D1", new Dictionary <string, int>()
            {
                { "E", 12 }
            });
            g.add_vertex("D2", new Dictionary <string, int>()
            {
                { "E", 9 }
            });
            g.add_vertex("D3", new Dictionary <string, int>()
            {
                { "E", 6 }
            });
            g.add_vertex("D4", new Dictionary <string, int>()
            {
                { "E", 3 }
            });
            g.add_vertex("E", new Dictionary <string, int>()
            {
                { "F", 9 }, { "G", 15 }, { "E1", 3 }, { "E2", 6 }, { "E3", 9 }, { "E4", 12 }
            });
            g.add_vertex("E1", new Dictionary <string, int>()
            {
                { "G", 12 }
            });
            g.add_vertex("E2", new Dictionary <string, int>()
            {
                { "G", 9 }
            });
            g.add_vertex("E3", new Dictionary <string, int>()
            {
                { "G", 6 }
            });
            g.add_vertex("E4", new Dictionary <string, int>()
            {
                { "G", 3 }
            });
            g.add_vertex("F", new Dictionary <string, int>()
            {
                { "A", 9 }, { "H", 15 }, { "F1", 3 }, { "F2", 6 }, { "F3", 9 }, { "F4", 12 }
            });
            g.add_vertex("F1", new Dictionary <string, int>()
            {
                { "H", 12 }
            });
            g.add_vertex("F2", new Dictionary <string, int>()
            {
                { "H", 9 }
            });
            g.add_vertex("F3", new Dictionary <string, int>()
            {
                { "H", 6 }
            });
            g.add_vertex("F4", new Dictionary <string, int>()
            {
                { "H", 3 }
            });
            g.add_vertex("G", new Dictionary <string, int>()
            {
                { "H", 9 }, { "R", 15 }, { "G1", 3 }, { "G2", 6 }, { "G3", 9 }, { "G4", 12 }
            });
            g.add_vertex("G1", new Dictionary <string, int>()
            {
                { "R", 12 }
            });
            g.add_vertex("G2", new Dictionary <string, int>()
            {
                { "R", 9 }
            });
            g.add_vertex("G3", new Dictionary <string, int>()
            {
                { "R", 6 }
            });
            g.add_vertex("G4", new Dictionary <string, int>()
            {
                { "R", 3 }
            });
            g.add_vertex("H", new Dictionary <string, int>()
            {
                { "I", 9 }, { "S", 15 }, { "H1", 3 }, { "H2", 6 }, { "H3", 9 }, { "H4", 12 }
            });
            g.add_vertex("H1", new Dictionary <string, int>()
            {
                { "S", 12 }
            });
            g.add_vertex("H2", new Dictionary <string, int>()
            {
                { "S", 9 }
            });
            g.add_vertex("H3", new Dictionary <string, int>()
            {
                { "S", 6 }
            });
            g.add_vertex("H4", new Dictionary <string, int>()
            {
                { "S", 3 }
            });
            g.add_vertex("I", new Dictionary <string, int>()
            {
                { "A", 15 }, { "I1", 3 }, { "I2", 6 }, { "I3", 9 }, { "I4", 12 }
            });
            g.add_vertex("I1", new Dictionary <string, int>()
            {
                { "A", 12 }
            });
            g.add_vertex("I2", new Dictionary <string, int>()
            {
                { "A", 9 }
            });
            g.add_vertex("I3", new Dictionary <string, int>()
            {
                { "A", 6 }
            });
            g.add_vertex("I4", new Dictionary <string, int>()
            {
                { "A", 3 }
            });
            g.add_vertex("J", new Dictionary <string, int>()
            {
                { "K", 9 }
            });
            g.add_vertex("K", new Dictionary <string, int>()
            {
                { "L", 9 }, { "C", 15 }, { "K1", 3 }, { "K2", 6 }, { "K3", 9 }, { "K4", 12 }
            });
            g.add_vertex("K1", new Dictionary <string, int>()
            {
                { "C", 12 }
            });
            g.add_vertex("K2", new Dictionary <string, int>()
            {
                { "C", 9 }
            });
            g.add_vertex("K3", new Dictionary <string, int>()
            {
                { "C", 6 }
            });
            g.add_vertex("K4", new Dictionary <string, int>()
            {
                { "C", 3 }
            });
            g.add_vertex("L", new Dictionary <string, int>()
            {
                { "M", 9 }, { "D", 15 }, { "L1", 3 }, { "L2", 6 }, { "L3", 9 }, { "L4", 12 }
            });
            g.add_vertex("L1", new Dictionary <string, int>()
            {
                { "D", 12 }
            });
            g.add_vertex("L2", new Dictionary <string, int>()
            {
                { "D", 9 }
            });
            g.add_vertex("L3", new Dictionary <string, int>()
            {
                { "D", 6 }
            });
            g.add_vertex("L4", new Dictionary <string, int>()
            {
                { "D", 3 }
            });
            g.add_vertex("M", new Dictionary <string, int>()
            {
                { "N", 15 }, { "M1", 3 }, { "M2", 6 }, { "M3", 9 }, { "M4", 12 }
            });
            g.add_vertex("M1", new Dictionary <string, int>()
            {
                { "N", 12 }
            });
            g.add_vertex("M2", new Dictionary <string, int>()
            {
                { "N", 9 }
            });
            g.add_vertex("M3", new Dictionary <string, int>()
            {
                { "N", 6 }
            });
            g.add_vertex("M4", new Dictionary <string, int>()
            {
                { "N", 3 }
            });
            g.add_vertex("N", new Dictionary <string, int>()
            {
                { "O", 15 }, { "N1", 3 }, { "N2", 6 }, { "N3", 9 }, { "N4", 12 }
            });
            g.add_vertex("N1", new Dictionary <string, int>()
            {
                { "O", 12 }
            });
            g.add_vertex("N2", new Dictionary <string, int>()
            {
                { "O", 9 }
            });
            g.add_vertex("N3", new Dictionary <string, int>()
            {
                { "O", 6 }
            });
            g.add_vertex("N4", new Dictionary <string, int>()
            {
                { "O", 3 }
            });
            g.add_vertex("O", new Dictionary <string, int>()
            {
                { "P", 15 }, { "E", 15 }, { "O1", 3 }, { "O2", 6 }, { "O3", 9 }, { "O4", 12 }
            });
            g.add_vertex("O1", new Dictionary <string, int>()
            {
                { "P", 12 }
            });
            g.add_vertex("O2", new Dictionary <string, int>()
            {
                { "P", 9 }
            });
            g.add_vertex("O3", new Dictionary <string, int>()
            {
                { "P", 6 }
            });
            g.add_vertex("O4", new Dictionary <string, int>()
            {
                { "P", 3 }
            });
            g.add_vertex("P", new Dictionary <string, int>()
            {
                { "Q", 15 }, { "G", 15 }, { "P1", 3 }, { "P2", 6 }, { "P3", 9 }, { "P4", 12 }
            });
            g.add_vertex("P1", new Dictionary <string, int>()
            {
                { "Q", 12 }
            });
            g.add_vertex("P2", new Dictionary <string, int>()
            {
                { "Q", 9 }
            });
            g.add_vertex("P3", new Dictionary <string, int>()
            {
                { "Q", 6 }
            });
            g.add_vertex("P4", new Dictionary <string, int>()
            {
                { "Q", 3 }
            });
            g.add_vertex("Q", new Dictionary <string, int>()
            {
                { "R", 9 }
            });
            g.add_vertex("R", new Dictionary <string, int>()
            {
                { "S", 9 }
            });
            g.add_vertex("S", new Dictionary <string, int>()
            {
                { "T", 9 }
            });
            g.add_vertex("T", new Dictionary <string, int>()
            {
                { "I", 15 }, { "T1", 3 }, { "T2", 6 }, { "T3", 9 }, { "T4", 12 }
            });
            g.add_vertex("T1", new Dictionary <string, int>()
            {
                { "I", 12 }
            });
            g.add_vertex("T2", new Dictionary <string, int>()
            {
                { "I", 9 }
            });
            g.add_vertex("T3", new Dictionary <string, int>()
            {
                { "I", 6 }
            });
            g.add_vertex("T4", new Dictionary <string, int>()
            {
                { "I", 3 }
            });
            g.shortest_path(start, destination).ForEach(x => Points.Add(x));

            Points.Reverse();

            for (var i = 0; i < Points.Count; i++)
            {
                Console.WriteLine(Points[i]);
            }

            return(Points);
        }