001    
002    package algo;
003    
004    /**
005     * A Path in a Graph.
006     * @author Heinz Kredel.
007     */
008    public interface Path extends Cloneable {
009    
010    /*
011     * empty path, all n points unused.
012     use with Java 5
013     */
014    // public static Path emptyPath(Graph g);
015    
016    /*
017     * standard path from point 0 to point n-1 to 0.
018     use with Java 5
019     */
020    // public static Path standardPath(Graph g); 
021    
022    
023    /**
024     * return a copy of this with maximal used array.
025     */
026        public Path copyMax();
027    
028    
029    /**
030     * get array of next possible paths.
031     */
032        public Path[] nextPaths();
033    
034    
035    /**
036     * get next possible path, reusing used array.
037     * @param pos position in unused array.
038     */
039        public Path nextPath(int pos);
040    
041    
042        public String toString();
043    
044    
045        public int length();
046    
047    
048        public int maxsize();
049    
050    
051        public double cost();
052    
053    
054        public Object clone(); 
055    
056        // protected static double cost(double c);
057    
058    }