lojix/search/src/main/com/thesett/aima/search/util/backtracking/BacktrackingAlgorithm.java
protected void backtrack(SearchNode checkNode)
    {
        while ((checkNode != null) && (checkNode.unexaminedSuccessorCount == 0))
        {
            Reversable undoState = (ReTraversable) checkNode.getState();
            undoState.undoOperator();

            checkNode = checkNode.getParent();
        }
    }
protected void backtrack(SearchNode checkNode)
    {
        while ((checkNode != null) && (checkNode.unexaminedSuccessorCount == 0))
        {
            Reversable undoState = (ReTraversable) checkNode.getState();
            undoState.undoOperator();

            checkNode = checkNode.getParent();
        }
    }
protected void backtrack ( SearchNode checkNode ) { while ( ( checkNode != null ) && ( checkNode . unexaminedSuccessorCount == 0 ) ) { Reversable undoState = ( ReTraversable ) checkNode . getState ( ) ; undoState . undoOperator ( ) ; checkNode = checkNode . getParent ( ) ; } }
Back-tracks from the specified node, moving succesively upwards through the chain of parent nodes, until a node
is encountered that has unexamined successors. This method implements the backtracking searches reverse
direction. By checking for the presence of unexamined successors, this method only backtracks where necessary.

@param checkNode The search node to start back-tracking from.
Back - tracks from the specified node moving succesively upwards through the chain of parent nodes until a node is encountered that has unexamined successors . This method implements the backtracking searches reverse direction . By checking for the presence of unexamined successors this method only backtracks where necessary .