我知道在深度优先搜索中,我们总是先探索最左边的子节点,我想知道在使用广度优先搜索时,是否也必须从左到右进行,还是顺序无关紧要?感谢您的时间。
回答:
两种算法之间的区别并不取决于你从哪里开始搜索。相反,它取决于你何时开始搜索。
在深度优先搜索中,你总是先探索找到的第一个子节点的所有子节点,直到没有更多的子节点(这可能意味着最左边、最右边或中间位置的子节点,具体取决于算法的应用)。在探索前一个节点的子节点之后,你才开始搜索下一个子节点。
在广度优先搜索中,你首先按照给定的顺序识别出所有子节点,然后再开始探索你已经识别的第一个子节点。例如,如果你按从左到右的方式获取子节点,那么你会“从左边开始”,然后向右移动,之后再向下寻找根节点。
这里有一个很棒的网站,可以让你玩转广度优先搜索和深度优先搜索,这样我刚才所说的话就会对你有意义:https://visualgo.net/en/dfsbfs