/
NikolayIvkin
/
tutorials1
Обзор
Документация
Войти
/
NikolayIvkin
/
tutorials1
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
data-structures/src/main/java/com/baeldung/graph/GraphTraversal.java
44 строки
1 KB
mikr
JAVA-1522 Split core-java-modules/core-java module
07 июн 2020, 17:52
07 июн 2020, 17:52
5a753ba
Код
Авторство
О чём код?
package com.baeldung.graph; import java.util.LinkedHashSet; import java.util.LinkedList; import java.util.Queue; import java.util.Set; import java.util.Stack; import com.baeldung.graph.Graph.Vertex; public class GraphTraversal { static Set<String> depthFirstTraversal(Graph graph, String root) { Set<String> visited = new LinkedHashSet<String>(); Stack<String> stack = new Stack<String>(); stack.push(root); while (!stack.isEmpty()) { String vertex = stack.pop(); if (!visited.contains(vertex)) { visited.add(vertex); for (Vertex v : graph.getAdjVertices(vertex)) { stack.push(v.label); } } } return visited; } static Set<String> breadthFirstTraversal(Graph graph, String root) { Set<String> visited = new LinkedHashSet<String>(); Queue<String> queue = new LinkedList<String>(); queue.add(root); visited.add(root); while (!queue.isEmpty()) { String vertex = queue.poll(); for (Vertex v : graph.getAdjVertices(vertex)) { if (!visited.contains(v.label)) { visited.add(v.label); queue.add(v.label); } } } return visited; } }