01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
package algs13.xbacktrack.xframework;
/**
* A interface defining a backtracking problem to be solved with the backtracking
* framework.
*
* @param <T> The type of the choices made in the backtracking problem.
*/
public interface XBacktrackProblem<T> {
/**
* Initialize the problem. The initialize method must call the track method on the
* driver to track the starting state.
*
* @param driver The driver orchestrating the search for the solution.
*/
void initialize(MyBacktrackDriver<T> driver);
/**
* Determine if the backtracking driver can advance in searching for a solution
* from the state represented by previous choice. If it can, this method must
* either call the track method on the driver to track the next choice, or
* it must call the driver's setDone() method.
*
* @param state The previous choice
* @return true if the current state consists of a valid partial solution,
* or the current state represents a complete solution (i.e. the
* last choice required to solve the problem has been made).
*/
boolean advance(T state);
}
|