@@ 25-50 (lines=26) @@ | ||
22 | self.adjList[v].add(w) |
|
23 | self.adjList[w].add(v) |
|
24 | ||
25 | ||
26 | class Digraph(object): |
|
27 | V = 0 |
|
28 | adjList = None |
|
29 | ||
30 | def __init__(self, V): |
|
31 | self.V = V |
|
32 | self.adjList = [None] * V |
|
33 | for v in range(V): |
|
34 | self.adjList[v] = Bag() |
|
35 | ||
36 | def vertex_count(self): |
|
37 | return self.V |
|
38 | ||
39 | def adj(self, v): |
|
40 | return self.adjList[v].iterate() |
|
41 | ||
42 | def add_edge(self, v, w): |
|
43 | self.adjList[v].add(w) |
|
44 | ||
45 | def reverse(self): |
|
46 | g = Digraph(self.V) |
|
47 | for v in range(self.V): |
|
48 | for w in self.adjList[v].iterate(): |
|
49 | g.add_edge(w, v) |
|
50 | ||
51 | return g |
|
52 | ||
53 | ||
@@ 4-22 (lines=19) @@ | ||
1 | from pyalgs.algorithms.commons import util |
|
2 | from pyalgs.data_structures.commons.bag import Bag |
|
3 | ||
4 | ||
5 | class Graph(object): |
|
6 | V = 0 |
|
7 | adjList = None |
|
8 | ||
9 | def __init__(self, V): |
|
10 | self.V = V |
|
11 | self.adjList = [None] * V |
|
12 | for v in range(V): |
|
13 | self.adjList[v] = Bag() |
|
14 | ||
15 | def vertex_count(self): |
|
16 | return self.V |
|
17 | ||
18 | def adj(self, v): |
|
19 | return self.adjList[v].iterate() |
|
20 | ||
21 | def add_edge(self, v, w): |
|
22 | self.adjList[v].add(w) |
|
23 | self.adjList[w].add(v) |
|
24 | ||
25 |