adding Graph data structure

This commit is contained in:
naor
2019-05-02 12:53:40 +03:00
parent 4b47c0661b
commit b2abfc24e3

View File

@ -0,0 +1,50 @@
class Graph {
constructor() {
this.adjacencyMap = {}
}
addVertex(v) {
this.adjacencyMap[v] = [];
}
containsVertex(vertex) {
return typeof (this.adjacencyMap[vertex]) !== "undefined"
}
addEdge(v, w) {
let result = false
if (this.containsVertex(v) && this.containsVertex(w)) {
this.adjacencyMap[v].push(w);
this.adjacencyMap[w].push(v);
result = true
}
return result
}
printGraph() {
let keys = Object.keys(this.adjacencyMap);
for (let i of keys) {
let values = this.adjacencyMap[i];
let vertex = "";
for (let j of values)
vertex += j + " ";
console.log(i + " -> " + vertex);
}
}
}
const example = () => {
let g = new Graph()
g.addVertex(1)
g.addVertex(2)
g.addVertex(3)
g.addEdge(1, 2)
g.addEdge(1, 3)
g.printGraph()
}