Skip to content

Commit a45e80a

Browse files
committed
Updated examples for directed graph
1 parent 1dcf3a8 commit a45e80a

File tree

2 files changed

+19
-9
lines changed

2 files changed

+19
-9
lines changed

src/main/java/com/eprogrammerz/examples/algorithm/graphs/DirectedGraph.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,22 @@
1111
* Route Between Nodes: Given a directed graph, design an algorithm to find out whether there is a route between two nodes.
1212
*/
1313
public class DirectedGraph {
14-
private List<Node> nodes = new ArrayList<>();
14+
private List<Node> nodes;
15+
16+
public DirectedGraph(List<Node> nodes) {
17+
this.nodes = nodes;
18+
}
1519

1620
// using BFS
1721
public boolean isRouteBetween(Node start, Node end) {
1822
Queue<Node> neighbors = new LinkedList<>();
1923

2024
if (start.id == end.id) return true;
2125

26+
for (Node node: nodes) {
27+
node.visited = false;
28+
}
29+
2230
neighbors.add(start);
2331

2432
while (!neighbors.isEmpty()) {

src/main/java/com/eprogrammerz/examples/algorithm/graphs/TestDirectedGraph.java

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
* @author Yogen Rai
1313
*/
1414
public class TestDirectedGraph {
15-
DirectedGraph graph;
15+
1616

1717
@Before
1818
public void setUp() {
@@ -24,11 +24,9 @@ public void setUp() {
2424
* 1 2 3
2525
*
2626
*/
27-
graph = new DirectedGraph();
2827
}
2928
@Test
3029
public void testRouteBetweenNodes() {
31-
3230
Node a = new Node(1);
3331
Node b = new Node(2);
3432
Node c = new Node(3);
@@ -39,11 +37,14 @@ public void testRouteBetweenNodes() {
3937
Node f = new Node(6);
4038
f.connections = Arrays.asList(d,e);
4139

42-
// assertTrue(graph.isRouteBetween(f, a)); // OK
43-
// assertFalse(graph.isRouteBetween(a, c)); // OK
44-
// assertFalse(graph.isRouteBetween(a,f));
45-
assertTrue(graph.isRouteBetween(e,a));
40+
DirectedGraph graph = new DirectedGraph(Arrays.asList(a,b,c,d,e,f));
41+
4642

43+
assertTrue(graph.isRouteBetween(f, a)); // OK
44+
assertFalse(graph.isRouteBetween(a, c)); // OK
45+
assertFalse(graph.isRouteBetween(a,f));
46+
assertFalse(graph.isRouteBetween(a, e));
47+
assertTrue(graph.isRouteBetween(e, a));
4748
}
4849

4950
@Test
@@ -58,7 +59,8 @@ public void testFindRouteBetweenNodes() {
5859
Node f = new Node(6);
5960
f.connections = Arrays.asList(d,e);
6061

61-
assertThat(Arrays.asList(f, d ,a), is(graph.findRoute(f,a)));
62+
DirectedGraph graph = new DirectedGraph(Arrays.asList(a,b,c,d,e,f));
6263

64+
assertThat(Arrays.asList(f, d ,a), is(graph.findRoute(f,a)));
6365
}
6466
}

0 commit comments

Comments
 (0)