void solve(vector<vector<char>> &board) { // Start typing your C/C++ solution below // DO NOT write int main() function if(board.empty()) return; int m = board.size(); int n = board[0].size(); for(int i = 0; i < n; i++) { if(board[0][i] == 'O') traverseBFS(board,0,i,m,n); if(board[m-1][i] == 'O') traverseBFS(board,m-1,i,m,n); } for(int i = 1; i < m-1; i++) { if(board[i][0] == 'O') traverseBFS(board,i,0,m,n); if(board[i][n-1] == 'O') traverseBFS(board,i,n-1,m,n); } for(int i = 0; i < m; i++) for(int j = 0; j < n; j++) { if(board[i][j] == 'O') board[i][j] = 'X'; if(board[i][j] == 'D') board[i][j] = 'O'; } }
int searchController(Graph graph, int start, int stop, int option) { Dllist close; Dllist node; close = new_dllist(); switch(option) { case BFS_SEARCH: breathFirstSearch(graph, start, stop, close); break; case BFS_TRAVERSE: traverseBFS(graph, start, close); break; case DFS_SEARCH: deepFirstSearch(graph, start, stop, close); break; case DFS_TRAVERSE: traverseDFS(graph, start, close); break; default: printf("This is not an option\n"); free_dllist(close); return; } node = dll_first(close); printf("Visit %d\n", jval_i(node->val)); free_dllist(close); }