class grap {
constructor() {
this.grap_grap = {};
}
addVertex(value) {
if (!this.grap_grap[value]) {
this.grap_grap[value] = [];
}
}
addEdge(v1, v2) {
this.grap_grap[v1].push(v2);
this.grap_grap[v2].push(v1);
}
removeEdge(v1, v2) {
const ind = this.grap_grap[v1].indexOf(v2);
this.grap_grap[v1].splice(ind, 1);
const indv = this.grap_grap[v2].indexOf(v1);
this.grap_grap[v2].splice(indv, 1);
console.log(this.grap_grap)
}
removeVertex(v1) {
var he = this.grap_grap[v1];
for (var i = 0; i < he.length; i++) {
const ind = this.grap_grap[he[i]].indexOf(v1);
this.grap_grap[he[i]].splice(ind, 1);
}
delete this.grap_grap[v1];
console.log(this.grap_grap)
}
}
const misu = new grap();
misu.addVertex("Tokyo");
misu.addVertex("Dallas");
misu.addVertex("Aspen");
misu.addVertex("Hongkong");
misu.addVertex("Los Angeles");
misu.addEdge("Tokyo", "Dallas");
misu.addEdge("Tokyo", "Hongkong");
misu.addEdge("Dallas", "Aspen");
misu.addEdge("Dallas", "Hongkong");
misu.addEdge("Dallas", "Los Angeles");
//misu.addEdge("Aspen", "Dallas");
misu.addEdge("Hongkong", "Los Angeles");
//misu.addEdge("Hongkong", "Los Angeles");
console.log(misu.grap_grap)
misu.removeVertex("Hongkong");
//misu.removeEdge("Tokyo", "Dallas")