搜索算法

深度优先搜索(DFS)模板

void dfs(参数列表)
{
	if (到达终点)
	{
		记录;
		返回; 
	}
	(记忆化剪枝;)
	for (所有拓展状态)
	{
		if(新状态可行)
		{
			记录;
			dfs(新状态);
			(回溯);
		}
	}
}

广度优先搜索(BFS)模板

queue <类型> 队列名;
队列名.push(初始状态);
while (队列不为空)
{
	类型 f = 队列名.front();
	队列名.pop();
	if (到达终点)
	{
		返回 
	}
	for (所有拓展状态)
	{
		if (新状态可行)
		{
			记录;
			新状态入队; 
		}
	}
}
return 不可行;