DEV Community

Kurapati Mahesh
Kurapati Mahesh

Posted on • Edited on

Is it DFS using adjacency Matrix?

I am little new to Graphs part in data structures. I am trying to implement DFS using adjacency matrix. I have looked for many references in Google but I don't find a better one rather I got the approaches to implement them. Hence, using them I started implementing DFS.

I am posting the code here. I have written using javascript.

Correct me if I am wrong in any way or suggest me the best way or provide me the best reference to learn.

class Graph { constructor(size) { this.matrix = []; this.visited = {}; this.result = []; const initLength = size; while (size > 0) { const arr = []; arr.length = initLength; arr.fill(0); this.matrix.push(arr); size--; } } addEdge(source, destination) { this.matrix[source][destination] = 1; this.matrix[destination][source] = 1; } dfs(start) { this.visited[start] = true; this.result.push(start); for (let i = 0; i < this.matrix[start].length; i++) { if (this.matrix[start][i] == 1 && (!this.visited[i])) { this.dfs(i); } } return this.result; } } const r = new Graph(5); r.addEdge(0, 1); r.addEdge(1, 2); r.addEdge(2, 3); r.addEdge(0, 3); r.addEdge(0, 2); r.addEdge(0, 4); console.log(JSON.stringify(r.matrix)); console.log(r.dfs(0)); 
Enter fullscreen mode Exit fullscreen mode
Output: [[0,1,1,1,1],[1,0,1,0],[1,1,0,1],[1,0,1,0],[1,0,0,0]] [0, 1, 2, 3, 4] 
Enter fullscreen mode Exit fullscreen mode

Thanks! Happy Learning :)

Top comments (0)