深度优先遍历、广度优先遍历

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值