We can use the problem's list of moves to create the children of a state
u in a
search tree:
- For each move in the move list, call move.doMove(u), and
if the result is not null, add it to a list of the state's children.
- We call this process "expanding" the state's vertex in the tree.
- Expanding a vertex u for a dynamic search tree is analogous to looking up
the adjacency list Adj[u] for a static graph.