// ---------------------
// GraphEdgeVisitor.java
// ---------------------

import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;

final class GraphEdgeVisitor implements GraphVisitor {
    private int[] a;

    public GraphEdgeVisitor (int s) {
        a = new int[s];
        Arrays.fill(a, -1);}

    public int[] pred () {
        return a;}

    public List<Integer> path (int u, int v) {
        final LinkedList<Integer> lli = new LinkedList<Integer>();
        lli.addFirst(v);
        while (u != v) {
            final int w = a[v];
            lli.addFirst(w);
            v = w;}
        return lli;}

    public void visit (int u, int v) {
        a[v] = u;}}


syntax highlighted by Code2HTML, v. 0.9.1