Search
 
SCRIPT & CODE EXAMPLE
 

JAVASCRIPT

graph data structure in 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();
Comment

PREVIOUS NEXT
Code Example
Javascript :: online convert python to javascript 
Javascript :: knexjs char 
Javascript :: join text javascript 
Javascript :: how to convert string to reverse title case in javascript 
Javascript :: pimcore 
Javascript :: knockout subscribe 
Javascript :: heroku 
Javascript :: react native app exit 
Javascript :: useScrollPrecent 
Javascript :: ternary operator multiple conditions 
Javascript :: JavaScript Changing Prototype 
Javascript :: javascript arrow function syntax 
Javascript :: javascript Nested Destructuring Assignment 
Javascript :: javascript Octal syntax is not allowed 
Javascript :: JavaScript Validation API 
Javascript :: how to write like query in node js 
Javascript :: nodejs: http: router simple 
Javascript :: Could not resolve "i18n-iso-countries" 
Javascript :: flip image on x axis phaser 
Javascript :: phaser random circle 
Javascript :: phaser play animation after delay 
Javascript :: javascript accordion 
Javascript :: Expresion regular para validar nombres de usuario 
Javascript :: membuat validasi form dengan javascript 
Javascript :: Using the forEach function In JavaScript 
Javascript :: what are array methods in javascript 
Javascript :: js brightness 
Javascript :: what is local storage and session storage in javascript 
Javascript :: angular number validation 
Javascript :: react native 
ADD CONTENT
Topic
Content
Source link
Name
5+2 =