方法一:

对于源点s,初始化vis[s]=1,并且在dfs之后vis[s]=1,为下一次调用做准备 。对于dfs递归中的寻找后继的循环体,入栈出栈语句写在循环内。

模板:

//调用
vis[s]=;
dfs(s);
vis[s]=; //dfs
void dfs(int s){
if(s==e){
return; //一定要有返回
}
for(i){
path.push_back(i);
vis[i]=;
dfs(i);
vis[i]=;
path.pop_back();
}
}

这样得到的路径path,是不包含源点的。注意在输出时加上源点。

方法二:

不用标记源点已访问。出入栈与访问标记抹去语句写在循环外。

模板:

//调用
dfs(s); //dfs
void dfs(int s){
if(s==e){
return; //一定要有返回
}
path.push_back(s);
vis[s]=;
for(i){
dfs(i);
}
vis[s]=;
path.pop_back();
}

这样得到的路径path,是不包含终点的。注意在输出时加上终点。

最新文章

  1. 如何为你的微信小程序体积瘦身?
  2. Web API 强势入门指南
  3. C fopen
  4. Repaint轨迹保留?(待处理,待编辑)
  5. 结合Apache和Tomcat实现集群和负载均衡 JK 方式
  6. point\polyline\polygon的转化(转)
  7. js “+” 连接字符串&数字相加 数字相加出现多位小数 函数调用单引号双引号嵌套和转义字符的使用
  8. ListBox获取行字符串
  9. Ubantu下编译Linux Kernel
  10. smarty如何处理状态值的显示
  11. Vue + iView + vuex + vee-validate 完整项目总结
  12. [CVPR2017] Weakly Supervised Cascaded Convolutional Networks论文笔记
  13. reuters-多分类问题
  14. Mock7 moco框架重定向
  15. firefox 屏蔽Backspace按键的后退功能
  16. Unity3D 在Update中不要过多地修改Transform 信息
  17. 如何用Python计算Softmax?
  18. Forward团队-爬虫豆瓣top250项目-项目进度
  19. dubbo直连代码示例
  20. Log4net 使用之 日期字段格式化

热门文章

  1. linux 三剑客(awk,sed,grep)
  2. eclipse卡在revert resources的解决方法
  3. 三、hexo+github搭建个人博客的主题配置
  4. Jaeger接入Python应用:jaeger-client-python【非完全教程】
  5. Blend 设置通明窗体
  6. 并发编程-线程,JMM,JVM,volatile
  7. Node.js返回JSON
  8. APICloud项目纪要
  9. JavaScript深入浅出第3课:什么是垃圾回收算法?
  10. Hyper-v,装XP的时候没有驱动上不了网,装这个集成服务(vmguest.iso )就可以了