int isTherePath(std::list<GraphNode*>& nodeList, GraphNode* node1, GraphNode* node2) { std::cout << "Forward search" << std::endl; if (BFSTraversal(node1, node2)) return 1; resetNodes(nodeList); std::cout << "Reverse search" << std::endl; if (BFSTraversal(node2, node1)) return 1; return 0; }
int main(int argc, char *argv[]){ char filename[MAX_FILE_NAME]; int vertex_num; int origin_num; char line[MAX_LINE]; FILE *in; if(argc != 2){ printf("Usage: ./%s [filename]\n", argv[0]); exit(1); } strcpy(filename, argv[1]); if((in = fopen(filename, "r")) == NULL){ fprintf(stderr, "failed to open the file\n"); } while(fgets(line, MAX_LINE, in)!=NULL){ int vertex[MAX_NODES_NUM]; int matrix[MAX_NODES_NUM][MAX_NODES_NUM]; int num = parse(line,vertex); decode(matrix, vertex, num); //print_matrix(matrix, num); graph *graph_ptr = create_graph(matrix,num); //print_graph(graph_ptr); DFSTraversal(graph_ptr); BFSTraversal(graph_ptr); } if(fclose(in)!=0){ fprintf(stderr, "failed to close the file\n"); } }
int main() { /*graph *g=createGraph(8); addEdge(g,1,2); addEdge(g,2,3); addEdge(g,8,2); addEdge(g,3,4); addEdge(g,3,5); addEdge(g,5,6); addEdge(g,5,7); addEdge(g,5,8);*/ graph *g=createGraph(6); addEdge(g,6,3); addEdge(g,6,1); addEdge(g,4,1); addEdge(g,5,2); addEdge(g,3,4); addEdge(g,4,2); DFSTraversal(g); printf("\n"); head=NULL; BFSTraversal(g); printf("\n"); topologicalsort(g); return 0; }
int BFS(GNode* graphRoot,int src,int dest){ int i; for(i=0;i<graphRoot->count;i++){ visited[i]=0; } return BFSTraversal(graphRoot,src,dest); }