graph.add_edge(0, 1, 4)
    graph.add_edge(0, 7, 8)
    graph.add_edge(1, 2, 8)
    graph.add_edge(1, 7, 11)
    graph.add_edge(2, 3, 7)
    graph.add_edge(2, 8, 2)
    graph.add_edge(2, 5, 4)
    graph.add_edge(3, 4, 9)
    graph.add_edge(3, 5, 14)
    graph.add_edge(4, 5, 10)
    graph.add_edge(5, 6, 2)
    graph.add_edge(6, 7, 1)
    graph.add_edge(6, 8, 6)
    graph.add_edge(7, 8, 7)

    path, distance = dijkastra_algo(graph.get_graph(), 0)

    for key, value in distance.items():
        print "{0} to {1} distance = {2}".format(0, key, value)

    print "*" * 50

    for vertex in graph.get_vertex():
        x = vertex
        path_list = []
        while x != 0:
            path_list.append(x)
            x = path[x]
        path_list.append(0)
        print "Shortest Path from 0 to {0} is {1}".format(vertex, path_list[::-1])