DFS非递归形式

判断从 source 到 target 有无路径,使用DFS的非递归形式,用到栈!

bool DFS(int s)
{
	path.push(s);
	while (!path.empty())
	{
		int p = path.top();
		visited[p] = true;

		if (s == target)
		{
			return true;
		}

		path.pop();
		for (int i = 0; i < vexnum; ++i)
		{
			if (residual[p][i] != 0 && !visited[i])
			{
				path.push(i);
			}
		}
	}
	
	return false;
}

 

你可能感兴趣的:(数据结构与算法)