Skip to content

Commit 5f5c7be

Browse files
author
minhaz.raufoon
committed
dfs added
1 parent 3437668 commit 5f5c7be

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
var l = console.log;
2+
3+
function DFSFindPath(graph, srcNode, destNode) {
4+
var isVisited = Object.create(null),
5+
isFound,
6+
dfsPath,
7+
nextNode;
8+
9+
dfsPath = [];
10+
dfsTraverse(srcNode);
11+
12+
return {
13+
distance: isFound ? dfsPath.length - 1 : Infinity,
14+
path: isFound ? dfsPath : []
15+
}
16+
17+
function dfsTraverse(node) {
18+
isVisited[node] = true;
19+
dfsPath.push(node);
20+
isFound = node === destNode;
21+
if (isFound) return;
22+
23+
for (var i = 0; i < graph[node].length; i++) {
24+
nextNode = graph[node][i];
25+
if (isVisited[nextNode]) continue;
26+
dfsTraverse(nextNode);
27+
if (isFound) return;
28+
}
29+
}
30+
}
31+
32+
/* TESTING */
33+
var graph = {
34+
1: [2, 3],
35+
2: [1, 3, 4, 5],
36+
3: [1, 2, 4],
37+
4: [2, 3, 5],
38+
5: [2, 4],
39+
}
40+
var srcNode = 1, destNode = 5;
41+
42+
console.log(DFSFindPath(graph, srcNode, destNode));

0 commit comments

Comments
 (0)