Example #1
0
        else:
            minimum = minimum.nodes[0]
        for edge in edges:
            nodeIndex = [i for i , x in enumerate(edge.nodes) if edge.nodes[i] != src][0]
            if edge.nodes[nodeIndex].distance < minimum.distance:
                minimum = edge.nodes[nodeIndex]
        return minimum




myGraph = Graph()
vertices = [Node("A") , Node("B") , Node("C") , Node("D") , Node("E") , Node("F")]

for vertex in vertices:
    myGraph.add_vertex(vertex)

edges = [
    #A -> B                               #A -> C                       #A -> D
    ((vertices[0] , vertices[1]) , 2) , ((vertices[0] , vertices[2]) , 5) , ((vertices[0] , vertices[3]) , 1) ,
    #B -> C                                #B -> D
    ((vertices[1] , vertices[2]) , 3) , ((vertices[1] , vertices[3]) , 2) ,
    #C -> D                                    #C -> E                       #C -> F
    ((vertices[2] , vertices[3]) , 3) , ((vertices[2] , vertices[4]) , 1) , ((vertices[2] , vertices[5]) , 5),
    #D -> E
    ((vertices[3] , vertices[4]) , 1),
    #E -> F
    ((vertices[4] , vertices[5]) , 2)
    ]

for edge in edges: