Book Image

Learning JavaScript Data Structures and Algorithms

By : Loiane Avancini
Book Image

Learning JavaScript Data Structures and Algorithms

By: Loiane Avancini

Overview of this book

Table of Contents (18 chapters)

Creating the Graph class


As usual, we are going to declare the skeleton of our class:

function Graph() {
    var vertices = []; //{1}
    var adjList = new Dictionary(); //{2}
}

We are going to use an array to store the names of all the vertices of the graph (line {1}) and we are going to use a dictionary (implemented in Chapter 7, Dictionaries and Hashes) to store the adjacent list (line {2}). The dictionary will use the name of the vertex as key and the list of adjacent vertices as a value. Both the vertices array and the adjList dictionary are private attributes of our Graph class.

Next, we are going to implement two methods: one to add a new vertex to the graph (because when we instantiate the graph, it will create an empty one) and another method to add edges between the vertices. Let's implement the addVertex method first:

this.addVertex = function(v){
    vertices.push(v); //{3}
    adjList.set(v, []); //{4}
};

This method receives a vertex v as parameter. We are going to add this vertex...