- gf24240 的博客
《梦溪笔谈·C++》卷六:Depth-First Search and Breadth-First Search
- 2025-4-3 13:03:48 @
搜索算法
深度优先搜索(DFS)模板
void dfs(参数列表)
{
if (到达终点)
{
记录;
返回;
}
(记忆化剪枝;)
for (所有拓展状态)
{
if(新状态可行)
{
记录;
dfs(新状态);
(回溯);
}
}
}
广度优先搜索(BFS)模板
queue <类型> 队列名;
队列名.push(初始状态);
while (队列不为空)
{
类型 f = 队列名.front();
队列名.pop();
if (到达终点)
{
返回
}
for (所有拓展状态)
{
if (新状态可行)
{
记录;
新状态入队;
}
}
}
return 不可行;