DFS:深度优先遍历
用栈进行存储元素。
具体步骤:
(1)用栈记录下一步的走向。访问一个顶点的过程中要做三件事:
①访问顶点
②顶点入栈,以便记住它
③标记顶点,以便不会再访问它
2、访问规则:
a.如果可能,访问一个邻接的未访问顶点,标记它,并入栈。
b.当不能执行a时(没有邻接的未访问顶点),如果栈不为空,就从栈中弹出一个顶点。
c.如果不能执行规则a和b,就完成了整个搜索过程。
3、实现:基于以上规则,循环执行,直到栈为空。每次循环各种,它做四件事:
①用peek()方法检查栈顶的顶点。
②试图找到这个顶点还未访问的邻接点。
③如果没有找到,出栈。
④如果找到这样的顶点,访问并入栈。
接下来图片入栈顺序:0,1,3,4,2,5,6
**对于以上以结论概括:**一条路走到黑、走不下去了就返回其他路走
BFS:广度优先遍历
就是一层一层遍历,解决:使用队列
eg:
遍历这颗树:1,2,3,4,5,6,7,8,9,10