Graph Traversals

by infous

HTML

<iframe width="560" height="315" src="https://www.youtube.com/embed/bIA8HEEUxZI?start=96" frameborder="0" allowfullscreen></iframe>

JavaScript

let A = { m: "I'm A!" };
let B = { m: "I'm B!" };
let C = { m: "I'm C!" };
let D = { m: "I'm D!" };
let E = { m: "I'm E!" };
let F = { m: "I'm F!" };
let G = { m: "I'm G!" };
let H = { m: "I'm H!" };

A.nodes = [B, D, G];
B.nodes = [A, E, F];
C.nodes = [F, H];
D.nodes = [A, F];
E.nodes = [B, G];
F.nodes = [B, C, D];
G.nodes = [A, E];
H.nodes = [C]

let visited = [];
let count = 0;

function t (node) {
	console.log(node.m);
  visited.push(node);
  ++count;
  
  node.nodes.forEach(item => {
  	if (visited.indexOf(item) === -1) {
    	t(item);
    }
  })
}

t(A);
console.log('Items in graph: ', count);

// picture of this graph: https://www.youtube.com/watch?v=bIA8HEEUxZI