第1个回答 推荐于2017-11-21
本质上是一样的。
个人对回溯有两种理解。
第一种理解:回溯就是以非递归实现的深搜,这样的话,回溯就属于深搜。
第二种理解:回溯过程,是深搜过程中的一个子过程。
例如:
void Dfs(int t)
{
……
if (Ok()) //可行性判断
{
Change_togo(); //搜索前的标记及修改
Dfs(i+1); //深搜下一层
Change_back(); //将标记和修改的值还原
}
}
在这个深搜过程中,Change_back()这个还原的子过程,就可以称为回溯过程。
一般的深搜都带回溯,但是没有回溯的深搜都是好深搜(一次就做完了,复杂度大大的低)本回答被提问者和网友采纳