关于上述伪代码,我有两个问题。
- 函数SOLUTION(node)的作用是什么?如何实现它?
- 倒数第三行,我们检查子节点是否不在前沿队列中。在先进先出队列中如何进行这种检查?
回答:
SOLUTION(node)
返回问题的完整解决方案,而不仅仅是一个节点。在路径查找问题中,它可能会返回从起始节点到结束节点的完整路径
示例:
def SOLUTION(node): result = [] while(node.predecessor is not None): result.append(node.predecessor) node = node.predecessor
- 在前沿队列中进行线性搜索。如果这不可行,只要在节点出队后检查它是否在已探索集合中,仍然可以工作,但这需要额外的内存。