データ構造図10|JS
14184 ワード
画像ソース
グラフィック|グラフィック
りんせつひょう
画像ソース
隣接行列
画像ソース
グラフィックタイプ
グラフィックとツリー
画像ソース
無方向図実装
class UndirectedGraph {
constructor() {
this.edges = {};
}
// 정점 추가하기
addVertex(vertex) {
this.edges[vertex] = {};
}
// 간선 추가하기
addEdge(vertex1, vertex2, weight = 0) {
this.edges[vertex1][vertex2] = weight;
this.edges[vertex2][vertex1] = weight;
}
// 간선 삭제하기
removeEdge(vertex1, vertex2) {
if (this.edges[vertex1] && this.edges[vertex1][vertex2] !== undefined) {
delete this.edges[vertex1][vertex2];
}
if (this.edges[vertex2] && this.edges[vertex2][vertex1] !== undefined) {
delete this.edges[vertex2][vertex1];
}
}
// 정점 삭제하기 (반대편 정점에서도 간선을 삭제해야함)
removeVertex(vertex) {
for (let adjacentVertex in this.edges[vertex]) {
this.removeEdge(adjacentVertex, vertex);
}
delete this.edges[vertex];
}
}
方向図
class DirectedGraph {
constructor() {
this.edges = {};
}
// 정점 추가
addVertex(vertex) {
this.edges[vertex] = {};
}
// 간선 추가
addEdge(from, to, weight = 0) {
// 시작 정점, 도착 정점, 가중치
this.edges[from][to] = weight;
}
// 간선 삭제
removeEdge(vertex1, vertex2) {
if (this.edges[vertex1] && this.edges[vertex1][vertex2] !== undefined) {
delete this.edges[vertex1][vertex2];
}
}
// 정점 삭제하기 (반대편 정점에서도 간선을 삭제해야함)
removeVertex(vertex) {
for (let adjacentVertex in this.edges[vertex]) {
this.removeEdge(adjacentVertex, vertex);
}
delete this.edges[vertex];
}
📚 リファレンス
Github | tech-interview-for-developer
Github | Interview_Question_for_Beginner
Github | javascript-algorithms | trekhleb
「データ構造」グラフィック(JavaScript)
Photo by Alain Pham on Unsplash
Reference
この問題について(データ構造図10|JS), 我々は、より多くの情報をここで見つけました https://velog.io/@protect-me/자료구조-10-그래프-JSテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol