#!/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))