- Fundamentos de ProgramaçãoGrafosAlgoritmos em Grafos
- Fundamentos de ProgramaçãoGrafosDFS: Busca em Profundidade
- Fundamentos de ProgramaçãoGrafosTeoria dos Grafos
Considere o código de um grafo implementado na linguagem Javascript, descrito abaixo:
class Graph {
constructor() {
this.vertices = new Set();
this.edges = new Map();
}
addVertex(vertice) {
this.vertices.add(vertice);
this.edges.set(vertice, []);
}
addEdge(source, destination) {
this.edges.get(source).push(destination);
this.edges.get(destination).push(source);
}
compute(start, visited = new Set()) {
visited.add(start);
for (const adjacent of this.edges.get(start)) {
if (!visited.has(adjacent)) {
this.compute(adjacent, visited);
}
}
return visited;
}
}
O método compute do código é conhecido pelo acrônimo em inglês: