总的来说,DFS和BFS是一种遍历策略,整体运行的框架是固定的,但是具体处理以及函数的形参是需要根据具体问题具体来定的。
也就是说,在BFS或者DFS的时候,首先需要搞明白的是:遍历的目的是什么。
标记结点已经访问(任何题目中必须有)遍历过程中计算参数(选择)计算参数是比较常见的题目,只标记结点是否访问在计算连通块个数时总结过。
详细说一下计算参数问题。
可以在形参中用参数引用,直接改变这个参数就等同于计算,因为外面可以感受到变化,DFS用的较多,因为DFS是递归处理。
或者定义全局变量,函数运行直接改变,这个才BFS更多用,因为BFS是循环处理。
DFS用起来仍然需要从递归函数的写法上多加注意,即注意:
递归边界当前层的逻辑处理递归式的写法新闻热点
疑难解答