Exemplo n.º 1
0
//DFS algo
void dfs(const int G[MAX][MAX],const int V,int startNode){
	void dfs_util(const int[MAX][MAX],const int,int,bool*);	//dfs_util declaration so that it is not viewable by any other function
	bool *visited=(bool*)calloc(V,sizeof(bool));
	for(int i=0;i<V;i++)
		visited[i] = false;
	dfs_util(G,V,startNode,visited);
}
Exemplo n.º 2
0
//A utility function for dfs()
void dfs_util(const int G[MAX][MAX],const int V,int u,bool *visited){
	//Mark the current node as visited
	visited[u] = true;
	printf("%5d",u);
	
	for(int i=0;i<V;i++){
		if(!visited[i] && G[u][i])
			dfs_util(G,V,i,visited);
	}
}
Exemplo n.º 3
0
void Graph::dfs()
{	
	bool visited[SIZE] = {false};
	std::cout<<std::endl;
	for (int i = 0; i < size; i++)
	{
		if (!visited[i])
			dfs_util(i, visited);
	}
	std::cout<<std::endl;
}
int dfs_util(int a, int b)
{
	// printf("%d->",a);
	visited[a] = 1;
	if(a==b)
		return 1;
	int i;
	for(i=0; i<ind[a]; i++)
	{
		if(!visited[adj_list[a][i]])
			if(dfs_util(adj_list[a][i] ,b))
				return 1;	
	}
	return 0;
}
Exemplo n.º 5
0
void Graph::dfs_util(int start,bool visited[])
{
	
	visited[start] = true;
	std::cout << start << " ";
	Node<int> *curr = array[start].gethead();

	while(curr!=NULL)
	{
		
		if(!visited[curr->getData()])
			dfs_util(curr->getData(),visited);
		curr = curr->getNext();
	}

}
int dfs(int a, int b)
{
	reset();
	return dfs_util(a,b);
}