一种为递归方法提供单个对象的函数

时间:2013-10-24 05:47:57

标签: java function recursion

该代码已发布以供审核委员会审核。我的目的不是要求审查代码。

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

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

  1. 由于模式太多,有这样一个函数的名称只能帮助/或设置递归调用吗?

  2. 如果是这样的话,有什么/不要/替代品吗?

1 个答案:

答案 0 :(得分:1)

我觉得你做得很好。每个递归算法都需要一些初始值,这是它的第一步。通常的做法是将这个初始调用封装在另一个方法中,这样调用者就不必费心去理解这些值了。

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

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

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