数的广度优先和深度优先

           A

         /     \

       B       C

     /      \

   D      E

          /     \

        F       G

深度优先故名思义,就是往深处走。

先确定A为起点(可以选择其他任意为起点)

A->B->(这里也可以选择C)E->F(没有路了,回到E再一次的搜索)->G(又没有路了,回到B搜索)->D(没有路了回到A搜索)->C。

所以其中一个答案就为

ABEFGDC

实现的时候用一个栈,每次遍历当前节点的最近子节点,并把当前节点入栈,当到叶节点时,出栈上一个节点,看其是否还有未遍历的子节点。

广度优先,顾名思义就是广度走。

先确定A为起点,也可以确定其他任意为起点。

A->B->C(同一排的一般先左后右,现在这一排完了,到下一排->D->E(这一排又完了)->F->G

实现的时候用一个队列

先把根节点入队

然后重复

1.从队列中取一个节点,标记为已遍历,并将其左右子节点入队列

2.取队列中的下一个节点,重复1,直至队列为空

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值