2008-11-14 16:38:36 +00:00
|
|
|
package zutil.algo.path;
|
|
|
|
|
|
2010-02-25 23:01:46 +00:00
|
|
|
import java.util.LinkedList;
|
|
|
|
|
|
2008-11-14 16:38:36 +00:00
|
|
|
|
|
|
|
|
public interface PathNode {
|
|
|
|
|
|
2010-02-25 23:01:46 +00:00
|
|
|
/**
|
|
|
|
|
* @return an Iterator with all its neighbors
|
|
|
|
|
*/
|
2008-11-14 16:38:36 +00:00
|
|
|
public Iterable<PathNode> getNeighbors();
|
|
|
|
|
|
2010-02-25 23:01:46 +00:00
|
|
|
/**
|
|
|
|
|
* @param neighbor is the neighbor
|
|
|
|
|
* @return the cost to the neighbor
|
|
|
|
|
*/
|
2008-11-14 16:38:36 +00:00
|
|
|
public int getNeighborCost(PathNode neighbor);
|
|
|
|
|
|
2010-02-25 23:01:46 +00:00
|
|
|
/**
|
|
|
|
|
* Sets the parent node to this one
|
|
|
|
|
*/
|
|
|
|
|
public void setParentNeighbor(PathNode parent);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @return the parent node
|
|
|
|
|
*/
|
|
|
|
|
public PathNode getParentNeighbor();
|
2008-11-14 16:38:36 +00:00
|
|
|
|
2010-02-25 23:01:46 +00:00
|
|
|
/**
|
|
|
|
|
* Traverses the parent tree and returns the path.
|
|
|
|
|
*
|
|
|
|
|
* @param goal is the node to reach
|
|
|
|
|
* @return the path to the goal, empty list if there is no goal
|
|
|
|
|
*/
|
|
|
|
|
public LinkedList<PathNode> traversTo(PathNode goal);
|
2008-11-14 16:38:36 +00:00
|
|
|
}
|