Estructura de datos de gráficos en JS

// program to implement graph data structure
class Graph {
  constructor() {
    this.adjacentList = new Map();
  }

  // add vertex
  addVertex(v) {
    // set inserted elements as vertex
    this.adjacentList.set(v, []);
  }

  // add Edge
  addEdge(v, w) {
    // for undirected graph, we can compare both sides
    this.adjacentList.get(v).push(w);
    this.adjacentList.get(w).push(v);
  }

  // render it in console
  render() {
    // get all the vertices
    let keys = this.adjacentList.keys();

    // loop through each vertex
    for (let key of keys) {
      let values = this.adjacentList.get(key);
      let text = "";

      // loop through each edge
      for (let value of values) {
        //   render the edges that has the same vertex as a string
        text += value + " ";
      }

      // render vertices and edges
      console.log(key + " --> " + text);
    }
  }
}

let graph = new Graph();
let vertices = ["A", "B", "C", "D", "E", "F"];

// loop through 'vertices' array,
// set them as vertices
for (let i = 0; i < vertices.length; i++) {
  graph.addVertex(vertices[i]);
}

graph.addEdge("A", "B");
graph.addEdge("A", "C");
graph.addEdge("B", "C");
graph.addEdge("C", "E");
graph.addEdge("D", "F");
graph.addEdge("E", "D");
graph.addEdge("F", "E");
graph.addEdge("E", "A");

// expected output:
// A --> B C E
// B --> A C
// C --> A B E
// D --> F E
// E --> C D F A
// F --> D E

graph.render();
Whale