1、广度优先遍历
原理:
广度优先遍历从某个顶点v出发,首先访问这个结点,并将其标记为已访问过;
然后顺序访问结点v的所有未被访问的邻接点{vi,..,vj},并将其标记为已访问过;
然后将{vi,...,vj}中的每一个节点重复节点v的访问方法,直到所有结点都被访问完为止。
具体代码实现时:
我们可以使用一个辅助队列q,首先将顶点v入队,将其标记为已访问,然后循环检测队列是否为空;
如果队列不为空,则取出队列第一个元素,并将与该元素相关联的所有未被访问的节点入队,将这些节点标记为已访问;
如果队列为空,则说明已经按照广度优先遍历了所有的节点。
2、深度优先遍历
思路: