Skip to content

Latest commit

 

History

History
48 lines (46 loc) · 816 Bytes

bfs3.md

File metadata and controls

48 lines (46 loc) · 816 Bytes
const g = {
	A: ["B", "C"],
	B: ["A", "D"],
	C: ["A", "G", "H", "I"],
	D: ["B", "E", "F"],
	E: ["D"],
	F: ["D"],
	G: ["C"],
	H: ["C"],
	I: ["C", "J"],
	J: ["I"]
};
const BFS = (g, start) => {
  let visited = []
  let needVisit = []
  needVisit.push(start)
  while(needVisit.length!==0){
    let node = needVisit.shift()
    if(!visited.included(node)){
      visited.push(node)
      needVisit = [...needVisit, ...g[node]]
    }
  }
  return visited
}
console.log(BFS(g, 'A'))
const BFS = (g, start) => {
  let visited = new Set()
  let needVisit = []
  needVisit.push(start)
  while(needVisit.length!==0) {
    let node = needVisit.shift()
    if(!visited.has(node)){
      visited.add(node)
      needVisit.push(...graph[node])
    }
  }
  return visited
}
console.log(BFS(g, 'A'))