文章目录

  • 造轮子博客链接
  • DFS代码实现(递归模板示范)
  • 代码实现(BFS模板示范)

造轮子博客链接

算法第四版C++算法实现全集


DFS可在STL中补充功能 下面的代码模式是结合的邻接表
C++ 邻接表STL实现(第四章)


DFS代码实现(递归模板示范)

//不妨可以在邻接表中增加一行
//这个算法再补充一点是回溯法的核心思想
//可作为检测两个节点是否相连的算法访问bool visit[v1] = false; //v1为节点最大数 初始化为全没有访问过bool Backtracking(int v1,int v2)
{if(visit[v1])  return false;if(v1 == v2) return true;//找到后返回bool ret = false;visit[v1] = true;for(const auto& num:G[v1]){if(!visit[num]) ret = Backtracking(num);if(ret)  return true;}//当所有节点遍历完都没有返回时 我们即返回false 没有找到我们需要找到的点return false;
};

代码实现(BFS模板示范)

//在我的理解中 这个BFS其实和二叉树层序遍历是一个原理的
//有STL库相对于我之前学习C的还需要用next pre记号来标记的时候 就方便的多了
//利用vector数组来表示下一层我们需要检查的
//visit bool数组防止重复访问造成不必要的检查vector<bool> visit(v1,false);//v1为节点最大数 初始化为全没有访问过
vector<int> nowlevel,nextlevel;bool BreadthFirstSearch(int v1,int v2)
{if(v1 == v2) return true;nowlevel.push_back(v1);visit[v1] = true;while(!nowlevel.empty()){for(const auto& num:nowlevel){for(const auto& temp:G[num]){if(temp == v2) return true;if(visit[temp]) continue;nextlevel.push_back(temp);visit[temp] = true;   }}nowlevel = nextlevel;nextlevel.clear();}return false;
}

算法C++ DepthFirstSearch BreadthFirstSearch代码模式示范实现(第四章)相关推荐

  1. 蚁群算法汇总含matlab代码_数学建模(十四)

    蚁群算法模拟自然界蚂蚁群体的觅食行为,常用于旅行商问题(TSP),二维.三维路径规划问题. 将蚁群算法用于优化问题的思路:用蚂蚁的行走路径表示待优化问题的可行解,整个蚂蚁群体群体的所有路径构成待优化问 ...

  2. 《C++性能优化指南》 linux版代码及原理解读 第四章

    目录 概述 为什么字符串很麻烦 字符串是动态分配的 字符串赋值背后的操作 如何面对字符串会进行大量复制 写时复制COW(copy on write) 尝试优化字符串 避免临时字符串 通过预留存储空间减 ...

  3. PHP动态设计的设计流程,《PHP设计模式介绍》第十四章 动态记录模式

    到目前为止,您所看到的这些设计模式大大提高了代码的可读性与可维护性.然而,在WEB应用设计与开发中一个基本的需求与挑战:数据库应用,这些设计模式都没有涉及到.本章与接下来的两章-表数据网关与表数据映射 ...

  4. 【设计模式】第四章 工厂模式

    第四章 工厂模式 文章目录 第四章 工厂模式 一.介绍 二.简单工厂模式 三.工厂方法模式 四.抽象工厂模式 一.介绍 工厂模式(Factory Pattern),工厂就是创建产品的地方,根据创建的产 ...

  5. 视觉SLAM开源算法ORB-SLAM3 原理与代码解析

    来源:深蓝学院,文稿整理者:何常鑫,审核&修改:刘国庆 本文总结于上交感知与导航研究所科研助理--刘国庆关于[视觉SLAM开源算法ORB-SLAM3 原理与代码解析]的公开课. ORB-SLA ...

  6. KMP算法求解next数组值(模式串从下标0开始或从下标1开始)以及求值后与主串的匹配过程

    写在前面:博主是一位普普通通的19届双非软工在读生,平时最大的爱好就是听听歌,逛逛B站.博主很喜欢的一句话花开堪折直须折,莫待无花空折枝:博主的理解是头一次为人,就应该做自己想做的事,做自己不后悔的事 ...

  7. 算法竞赛训练指南代码仓库_数据仓库综合指南

    算法竞赛训练指南代码仓库 重点 (Top highlight) As a data scientist, it's valuable to have some idea of fundamental ...

  8. RANSAC(随机采样一致算法)原理及openCV代码实现

    <RANSAC(随机采样一致算法)原理及openCV代码实现> 原文: http://www.lai18.com/content/1046939.html  本文转自:http://b ...

  9. Go-AES算法详解与代码

    目录 AES 发展史 概述 轮函数F 字节代换 行移位 列混淆 轮密钥加 密钥编排 AES和DES的不同之处 分组模式CTR AES的Go实现 aes包 cipher包 加密/解密 参考 本篇介绍分组 ...

最新文章

  1. 解决windows7下vs2008不能正常编译ActiveX控件的问题
  2. OpenAI推新程序包:GPU适应十倍大模型仅需增加20%训练时间
  3. 作业一(高见老师收)
  4. github/gitlab同时管理多个ssh key
  5. android浮于上方布局,android-在FrameLayout中使RecyclerView上方的视图...
  6. jeewx-api-1.0.1(捷微微信接口API)版本正式发布
  7. 外星人做系统logo_深圳福田外星人笔记本电脑维修服网点
  8. odoo10参考系列--测试模块
  9. 将html内容转换成word文档,一招教你将网页内容转化为word文档保存
  10. java计数器生成流水号_CODESOFT打印流水号
  11. 如何通过股票量化交易接口实现盈利稳定?
  12. File Juicer for Mac(文件内容提取工具)
  13. 关于人脸识别的最全研究!
  14. MFC简易RTF编辑器
  15. Flink SQL 自定义 Connector
  16. 勒索病毒2019年常见的后缀有ITLOCK/AOL/VC/phobos/ETH/x3m/qwex/H
  17. 23种java设计模式详解-代理模式
  18. 【科研小工具】输入任意坐标即可显示相应脑区详细解剖信息
  19. Linux指令用之记之-sell算数运算
  20. 搭建or部署接口自动化平台从零到一的过程

热门文章

  1. 解决打开管家婆软件报表慢的问题
  2. B/S架构与C/S架构
  3. 【破解利器】PE工具篇(PE编辑,查看等操作)
  4. Postgresql源码(5)缓冲区管理
  5. Microelectronic学习章节总结(1)-- 计算机架构复习
  6. phpyun人才招聘系统接入阿里云短信
  7. 单元测试——使用Mock
  8. Kafka的ISR收缩机制
  9. 自动化立体仓库的规划与设计(学习笔记)
  10. 应届大学毕业生面试应答