一、图搜索
如图 S是起点,G是终点,左图为真实情况,右边为模拟搜索的过程,也是数据结构
图搜索的基本步骤为:
1、首先,应该有一个容器,用于放置即将被访问的节点(初始状态当然是包含S起点)
2、执行以下循环:(1)remove 从容器中弹出一个节点 (2)expansion 扩展该节点的邻居节点 (3)push 将邻居节点压入容器
3、当容器empty时,停止循环
注:如果图是回环的,则创建一个新容器装被访问过的节点。
二、深度优先搜索
深度优先搜索属于图算法的一种,英文缩写为DFS即Depth First Search 。其过程简要来说是对每一个可能的分支路径深入到不能再深入为止,而且每个节点只能访问一次。
深度优先搜索以数据结构体现为堆栈,在图搜索的基本步骤下,弹出和扩展过程中遵循“先进后出"原则:
如下图所示,深度优先搜索一个方向搜到底
三、广度优先搜索
广度优先搜索首先搜索同级未扩展节点。遵循队列的”先进先出“原则: