Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Latest commit

 

History

History
History
44 lines (39 loc) · 1.36 KB

File metadata and controls

44 lines (39 loc) · 1.36 KB
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
class GraphUnweightedUndirected {
// Unweighted Undirected Graph class
constructor () {
this.connections = {}
}
addNode (node) {
// Function to add a node to the graph (connection represented by set)
this.connections[node] = new Set()
}
addEdge (node1, node2) {
// Function to add an edge (adds the node too if they are not present in the graph)
if (!(node1 in this.connections)) { this.addNode(node1) }
if (!(node2 in this.connections)) { this.addNode(node2) }
this.connections[node1].add(node2)
this.connections[node2].add(node1)
}
DFSRecursive (node, value, visited = new Set()) {
// DFS Function to search if a node with the given value is present in the graph
// checking if the searching node has been found
if (node === value) { return true }
// adding the current node to the visited set
visited.add(node)
// calling the helper function recursively for all unvisited nodes
for (const neighbour of this.connections[node]) {
if (!visited.has(neighbour)) {
if (this.DFSRecursive(neighbour, value, visited)) { return true }
}
}
return false
}
}
export { GraphUnweightedUndirected }
// const graph = new GraphUnweightedUndirected()
// graph.addEdge(1, 2)
// graph.addEdge(2, 3)
// graph.addEdge(2, 4)
// graph.addEdge(3, 5)
// graph.DFSRecursive(5, 1)
// graph.DFSRecursive(5, 100)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.