Example #1
0
MoveTree * generateAll(char * state, int n_moves)
{
  char*movelist = malloc(sizeof(char) * (n_moves + 1));
  movelist[0] = '\0';
  MoveTree *root = MoveTree_create(state, movelist);
  generateAllHelper(root,n_moves,state,movelist,0);
  free(movelist);
  return root;
}
Example #2
0
MoveTree * MoveTree_insert(MoveTree * node, 
               const char * state, 
               const char * moves)
{
    if(node==NULL) return MoveTree_create(state,moves);
    int cmp=strcmp(state,node->state);
    if(cmp==0){
        if(strlen(moves)<strlen(node->moves)){
            free(node->moves);
            node->moves=strdup(moves);
        }
    }
    else if(cmp<0) node->left=MoveTree_insert(node->left,state,moves);
    else if(cmp>0) node->right=MoveTree_insert(node->right,state,moves);
    return node;
}