向递归方法提供单个对象的函数



代码发布在审查板上以供审查。我的意图不是要求审查代码。

[迷宫] : https://codereview.stackexchange.com/questions/33155/maze-code-review

在上面的代码中,函数solve什么都不做,只是提供一个堆栈对象(对 stack 类型的对象的引用),该对象将由递归执行的代码使用。

  1. 由于有这么多模式,是否有这样一个函数的名称,它只协助/或设置递归调用?

  2. 如果是这样,任何做/不做/不做/替代方案?

我认为你做得很好。每个递归算法都需要一些初始值作为第一步。通常的做法是将此初始调用封装在另一种方法中,以便调用方不必为这些值而烦恼。

如果初始值的设置更加复杂,您也可以将其封装在其他方法中。假设您的堆栈需要有一些内容,而不是空的。你可以做这样的事情:

public List<Coordinate> solve() {
    return getMazePath(0, 0, getInitialStack());
}

这样,solve方法作为递归的入口点保持清晰易行。

最新更新