关于marked数组处理

关于marked数组处理,分3种情况

1一般的遍历(遍历结点), marked数组一旦标记上就不会再unmark,即一个结点访问一次

2有无路径,求任意一条路径,有无环问题,

  同1,mark了就不会unmark,因为如果之前经过这个点,没有路径,或者没有环,那么这次也不会有;而如果有路径或者有环,之前就得到结果退出了

3所有路径:

 是否unmark看情况,如果经过这个点有通路,也就是任意一条边的方向上有通路,则这个点要unmark,因为可以作为另一条合法路径的子路径。如果经过这个点没通路,则不unmark,已经知道是死路,别的前驱就不必再进入了。


节点的访问情况可以有多种状态,0 代表未访问过,1代表访问中(in stack), 2 代表之前访问过。第三种情况可以继续细分,1)之前访问过且有路径2.1,2)之前访问过但不存在路径2.2。具体的,多路径问题,marke状态为0或者2.1则可以进入,状态为1或者2.2则不进入。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值