广度优先搜索伪代码理解

Breadth First Search Pseudo Code Understanding

关于上面的伪代码,我有两个问题。

  1. 函数 SOLUTION(node) 的作用是什么?如何实现它?
  2. 在倒数第 3 行,我们检查 child 是否不在边界内。如何在 FIFO 队列中检查它?
  1. SOLUTION(node) return是问题的完整解决方案,而不仅仅是一个节点。在寻路问题中,它可能 return 从开始到结束节点的完整路径

示例:

def SOLUTION(node): 
    result = []
    while(node.predecessor is not None):
        result.append(node.predecessor)
        node = node.predecessor
  1. 线性搜索边界。如果这不可能,只要您在节点出列后检查该节点是否处于探索状态,它仍然可以工作,但这需要额外的内存。