private void breadthLook(Graph<VLabel, ELabel> G,
                        Graph<VLabel, ELabel>.Vertex v,
                        LinkedList<Graph<VLabel, ELabel>.Vertex> fringe,
                        Stack<Graph<VLabel, ELabel>.Vertex> postList) {
        Iteration<Graph<VLabel, ELabel>.Edge> myEdges = G.outEdges(v);
        if (!myEdges.hasNext()) {
            try {
                _finalVertex = v;
                postVisit(postList.pop());
                _finalVertex = null;
                return;
            } catch (RejectException e) {
                return;
            }
        }
        while (myEdges.hasNext()) {
            Graph<VLabel, ELabel>.Edge currEdge = myEdges.next();
            Graph<VLabel, ELabel>.Vertex currVtx = currEdge.getV1();
            if (marked.contains(currVtx)) {
                continue;
            }
            try {
                _finalVertex = currVtx;
                _finalEdge = currEdge;
                preVisit(currEdge, currEdge.getV0());
                _finalVertex = null;
                _finalEdge = null;
                if (!marked.contains(currVtx)) {
                    fringe.addLast(currVtx);
                }
            } catch (RejectException e) {
                continue;
            }
        }
    }