123456789101112131415161718192021222324252627282930313233343536373839 |
- #!/usr/bin/python
- # -*- coding=utf-8 -*-
- # @Create Time: 2024-02-05 09:53:01
- # @Last Modified time: 2024-02-21 13:09:15
- class Digraph:
- def __init__(self, num):
- self.num_vertices = num
- self.num_edges = 0
- self.adj_list = [[] for _ in range(num)]
- def count_vertices(self):
- return self.num_vertices
- def count_edges(self):
- return self.num_edges
- def point_edge(self, x, y):
- self.adj_list[x].append(y)
- def point_to_vertices(self, x):
- return self.adj_list[x]
- def reverse_digraph(self):
- rvs_digraph = Digraph(self.num_vertices)
- for index, queue in enumerate(self.adj_list):
- for v in queue:
- rvs_digraph.point_edge(v, index)
- return rvs_digraph
- if __name__ == '__main__':
- graph = Digraph(5)
- graph.point_edge(1, 2)
- graph.point_edge(2, 3)
- graph.point_edge(3, 4)
- graph.point_edge(2, 4)
- print(graph.point_to_vertices(2))
- print(graph.reverse_digraph().point_to_vertices(2))
|