图的搜索算法:图的搜索指的就是从图的某一节点开始,通过边到达不同的节点,最终找到目标节点的过程。根据搜索的顺序不同,图的搜索算法可分为“广度优先搜索”和“深度优先搜索”两种。
1.深度优先遍历(Depth_First_Search),也有称为深度优先搜索,简称DFS。
在深度优先搜索中,保存候补节点是栈,栈的性质就是先进后出,即最先进入该栈的候补节点就最后进行搜索。
2.广度优先遍历(Breadth_First_Search),又称为广度优先搜索,简称BFS。
在广度优先搜索中,有一个保存候补节点的队列,队列的性质就是先进先出,即先进入该队列的候补节点就先进行搜索。
3.图的深度优先遍历与广度优先遍历,它们的时间复杂度上一样,不同之处仅仅在于对顶点访问的顺序不同。图的深度优先遍历类似树的前序遍历,广度优先遍历就类似于树的层序遍历。