搜索与回溯
其实可以这样理解,一个傻子走迷宫,每个壁都碰一次必能找到最终路径。
框架(1)
int search(int k)
{
for(i=1;i<=算符种数;i++)
if(满足条件)
{
保存结果
if(到目的地)输出解
else search(k+1);
恢复:保存结果之前的状态{回溯一步}
}
}
框架(2)
int search(int k)
{
if(到目的地)输出解;
else
for(i=1;i<=算符种数;i++)
if(满足条件)
{
保存结果;
search(k+1);
恢复:保存结果之前的状态{回溯一步}
}
}