笔记:
双向BFS的适用范围:一般用来求解初始状态和结束状态已知的最优解问题
双向BFS的优缺点:
① 优点:
1.极大地提高效率
2.单向BFS如果是次扩展,双向BFS只需次扩展
② 缺点:
1.必须确定问题的起始状态和结束状态,若有一个状态未知,则不能使用(即局限性大)
2.在对状态进行标记时往往涉及状态的压缩
while(!queue.empty()) {
t=queue.front();
queue.pop();
for(每个t的儿子s) {
if(正向搜索)
if(vis1[s]==0) {//找到答案
if(vis2[s]==1)
over;
vis1[s]=1;
queue.push(s);
}
else//反向搜索
if(vis2[s]==0) {//找到答案
if(vis1[s]==1)
over;
vis2[s]=1;
queue.push