示例#1
0
#graph.add_edges( 5, 14, 11)
#graph.add_edges( 6, 15, 9, 1, 12, 7, 3)
#graph.add_edges( 7, 6, 3, 10, 8, 13, 12)
#graph.add_edges( 8, 2, 10, 7, 13)
#graph.add_edges( 9, 4, 15, 6, 1)
#graph.add_edges(10, 3, 7, 8, 2)
#graph.add_edges(11, 5, 14, 12, 13)
#graph.add_edges(12, 1, 6, 7, 13, 11, 14)
#graph.add_edges(13, 11, 12, 7, 8)
#graph.add_edges(14, 5, 11, 12, 1)
#graph.add_edges(15, 4, 9, 6, 3)

if __name__ == '__main__':
    total = 40
    graph = Graph(nodes=range(1, 16))
    graph.add_edges( 1, )
    graph.add_edges( 2, )
    graph.add_edges( 3, )
    graph.add_edges( 4, )
    graph.add_edges( 5, )
    graph.add_edges( 6, )
    graph.add_edges( 7, )
    graph.add_edges( 8, )
    graph.add_edges( 9, )
    graph.add_edges(10, )
    graph.add_edges(11, )
    graph.add_edges(12, )
    graph.add_edges(13, )
    graph.add_edges(14, )
    graph.add_edges(15, )
示例#2
0
                    stack.append((edge, iter(graph.get_edges(edge))))
                    visitor.send((Event.TreeEdge, node, edge))
                    visitor.send((Event.DiscoverVertex, edge))
                elif color[edge] == Color.Gray:
                    visitor.send((Event.BackEdge, node, edge))

            except StopIteration:
                node, _ = stack.pop()
                color[node] = Color.Black
                visitor.send((Event.FinishVertex, node))

if __name__ == "__main__":
    from common import Graph
    def print_visitor(graph):
        while True:
            message = yield
            print Event.get_name(message[0]),
            if Event.is_vertex_event(message[0]):
                print "\t[{}]".format(message[1])
            else: print "\t[{}]->[{}]".format(message[1], message[2])

    graph = Graph(['a', 'b', 'c', 'd', 'e', 'f'])
    graph.add_edges('a', 'b', 'c')
    graph.add_edges('b', 'c', 'e')
    graph.add_edges('c', 'd', 'f')
    graph.add_edges('d', 'e')
    graph.add_edges('e', 'f')
    visitor = print_visitor(graph)
    visitor.next()
    graph_dfs_visit(graph, 'a', visitor)