void possibility (FILE*dico, cell entre[N][N][3], cell sortie[20][100]) { int i; int j; int k; int exist; init_sortie (sortie); nb_elem = 0; for(i = 0; i < N; i++) { for(j = 0; j < N; j++) { exist = 1; k = 0; init_visited(entre); sortie[nb_elem][k] = entre[i][j]; nb_elem++; k++; entre[i][j].visited = 1; while (exist != 0) { check_dico (&nb_elem, &exist, k, sortie, dico); take_nei (sortie); } } } }
/* process_func_call will differentiate between user-defined function and built-in function calls. */ void process_func_call() { int i, j; int func_call = 0; call_trace_tree *p; // Search for all calls made in function definition and extract only user-definition calls for (i = 0; i < temp_index; i++) { for (j = 0; j < global_func_index; j++) { if(strcmp(temp_call_trace[i].func_name,func_tab[j].func_name) == 0) { call_trace[call_trace_index] = temp_call_trace[i]; call_trace[call_trace_index].index = call_trace_index; call_trace[call_trace_index].func_index = j; call_trace_index++; break; } } } generate_tree_head();// generate indivisual tree head for each funtion. func_call = generate_trace_tree();// generate function call trace tree printf("\n\n FUNCTION CALL TRACE\n"); if (func_call) { for (i = 0; i < global_func_index; i++) { p = stack_trace[i]; while(p != NULL) { printf(" %d->",p->index); p = p->next; } printf("\n"); } // traverse tree using DFS for (i = 0; i < global_func_index; i++) { for (j = 0; j < thread_index; j++) { if (i == thread_tab[j].func_index) { parent_thread_index = i; DFS(stack_trace, i, visited); init_visited(); } } } } }
int main(){ insert_node(1); insert_node(2); insert_node(3); insert_node(4); insert_node(5); insert_node(6); insert_node(7); insert_node(8); insert_node(9); insert_edge(1,2,1); insert_edge(1,4,1); insert_edge(1,5,1); insert_edge(2,3,1); insert_edge(2,5,1); insert_edge(3,6,1); insert_edge(4,7,1); insert_edge(5,6,1); insert_edge(7,5,1); insert_edge(7,8,1); insert_edge(8,9,1); init_visited(); display(); printf("\n\n\n"); bfs(start); init_visited(); printf("\n\n\n"); dfs(start); return 0; }
void Floodfill::init(int w, int h, int d, int visitedmode) { width = w; height = h; depth = d; maxrecursiondepth = 4; if(visitedmode==VISITEDARRAY) { visited_voxels = new bool**[w]; for(int i=0; i<w; i++) { visited_voxels[i] = new bool*[h]; for(int j=0; j<h; j++) { visited_voxels[i][j] = new bool[d]; } } init_visited(); } float size = 1.0; float resX = volobj->texwidth; float resY = volobj->texheight; float resZ = volobj->texdepth; float maxres = 0.0; maxres = max((float)maxres, (float)resX); maxres = max((float)maxres, (float)resY); maxres = max((float)maxres, (float)resZ); float maxressize = max((float)volobj->xsize, (float)volobj->ysize); maxressize = max((float)maxressize, (float)volobj->zsize); float maxsize = max((float)volobj->xsize, (float)volobj->ysize); maxsize = max((float)maxsize, (float)volobj->zsize); scaleX = (volobj->xsize/maxsize);//(maxsize/resX); scaleY = (volobj->ysize/maxsize);//(maxsize/resY); scaleZ = (volobj->zsize/maxsize);//(maxsize/resZ); }