首页 > 解决方案 > 递归中的“主要方法”和“辅助方法”是什么意思?

问题描述

我得到了这个任务:

private int hex2Dec(String string) // helper method
private int hex2Dec(String string, int low, int high) // main method

这意味着递归方法应如下所示:

private int hex2Dec(String string, int low, int high) {
    ... some code ....
    hex2Dec(string);
}

private int hex2Dec(String string)

或者这意味着递归方法应该如下所示:

private int hex2Dec(String string) {
    ... some code ....
    hex2Dec(string, 0, string.length()-1);
}

private int hex2Dec(String string, int low, int high) 

“主方法”和“辅助方法”在递归中是什么意思?

在 Daniel Liang 的《Java 编程和数据结构简介》第 11 版全球版第 751 页(第 18 章)中,他将辅助方法描述为接收附加参数的第二种方法。

但在这个任务中,它是一个参数较少的任务,称为“辅助方法”。这让我很困惑。

标签: recursion

解决方案


这些不是特定于递归的术语。

但是,在这种情况下,“主要功能”可能是他们期望实际递归发生的地方。

递归函数经常使用辅助函数来简化初始调用。通常,就像这里的情况一样,递归调用需要额外的信息(如lowhigh)来操作,但您不希望用户需要担心自己传递起始值。通常让辅助函数使用额外参数的初始值调用递归函数。

所以在这种情况下,他们可能希望助手调用具有值的递归函数lowand high,然后用户可以调用更简单的助手而不是递归函数。


推荐阅读