前言
在上一篇文章中,我介绍了图的存储及其相关的知识点,那么在这一片文章,就来介绍一种可以对图进行搜索的方式:深度优先搜索(深搜)
深搜及相关基本概念
搜索概念
在这里,我们要先了解什么是搜索
搜索,其实就是从给定的一个地方开始,通过一定的方法或顺序向下查找所需的元素,逐层深入数据
深搜概念
深度优先搜索(Depth First Search)简称 DFS,
指将当前的元素按照一定顺序,向下搜索,并将搜索来的状态作为新起点继续向下搜索,当无法继续向下搜索时,将会回到上一个状态(回溯),寻找其他方向搜索。按照这种规则,直到找到所需状态或数组便利完毕结束。
白话文就是以递归为原理向下搜索。
存储方式
因为需要不断存入元素,同时回溯时是回到上一个元素,类似于栈“先进后出”的概念,所以用栈来储存
如果不了解或不知道栈,我可能会在之后再发布一篇关于栈的文章,也可以在网络看其他大神的文章
实现方法
基本框架
因为是利用递归的原理,那么我们便可以通过递归函数实现深搜
void dfs(编号){
if(结束条件){
执行题目所需步骤
}
el