[자료구조] graph

김린네·2022년 4월 28일


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")

profile
디자인 > https://dribbble.com/jongpil_77 코딩 > https://www.codewars.com/users/bikijjang

0개의 댓글