package com.company.graph.BreadthFirstSearch; import java.util.LinkedList; import java.util.Queue; public class BreadthFirstSearch { public void bfs(Vertex root, Vertex end){ Queue<Vertex> queue = new LinkedList<>(); root.setVisited(true); queue.add(root); if (root.getData() == end.getData()){ System.out.print("-"); } while( !queue.isEmpty() ){ Vertex actualVertex = queue.remove(); System.out.print(actualVertex+" "); if (end.getData() == actualVertex.getData()){ break; } for( Vertex v : actualVertex.getNeighbourList() ){ if( !v.isVisited() ){ v.setVisited(true); queue.add(v); } } } } }