Что означают «основной метод» и «вспомогательный метод» в рекурсии? - PullRequest
0 голосов
/ 21 февраля 2020

Я получил это назначение:

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) 

Что означает «основной метод» и «вспомогательный метод» в рекурсии?

В книге Даниэля Ляна «Введение в Java Программирование и структуры данных» 11-й Глобальный издание, на стр. 751 (глава 18), он описывает вспомогательный метод как второй метод, который получает дополнительные параметры.

Но в этом назначении этот метод с меньшим количеством параметров называется «вспомогательный метод». И это смутило меня.

1 Ответ

1 голос
/ 21 февраля 2020

Это не рекурсивные c термины.

В этом случае, однако, "основная функция" вероятна там, где они ожидают фактическую рекурсию.

И помощники функции часто используются рекурсивными функциями для упрощения начального вызова. Часто, как и здесь, рекурсивные вызовы требуют дополнительной информации (например, low и high) для работы, но вы не хотите, чтобы пользователю приходилось беспокоиться о передаче начальных значений самостоятельно. Обычно вспомогательная функция вызывает рекурсивную функцию с начальными значениями для дополнительных параметров.

Так что в этом случае они, скорее всего, захотят, чтобы помощник вызвал рекурсивную функцию со значениями low и high, а затем пользователь может вызвать более простой помощник вместо функции восстановления.

...