public void bfs() { // BFS uses Queue data structure Queue<Integer> q = new LinkedList<Integer>(); q.add(rootNode); visited[rootNode] = true; printNode(rootNode); while (!q.isEmpty()) { int n, child; n = (q.peek()).intValue(); child = getUnvisitedChildNode(n); if (child != -1) { visited[child] = true; printNode(child); q.add(child); } else { q.remove(); } } clearVisited(); // Clear visited property of nodes }