Я буду честен, я не уверен в терминах, которые я использовал в названии.
В основном мне было любопытно узнать разницу между чем-то вроде:
class MyRecursiveClass
{
public:
int myData;
MyRecursiveClass* nextInLine;
int myRecursiveFunction(int data)
{
data+=myData;
if(nextInLine == null)
return data;
else
return nextInLine->myRecursiveFunction(data);
}
}
и
int staticRecursiveFunction(MyRecursiveClass* target, int currentData)
{
if(target == null)
return currentData;
currentData+=target->myData;
staticRecursiveFunction(target->nextInLine, currentData);
}
или
int otherStaticRecursiveFunction(MyRecursiveClass* target)
{
if(target == null)
return 0;
return target->myData + otherStaticRecursiveFunction(target->nextInLine);
}
В основном мне нужны различия в накладных расходах, а также лучшие термины для различий между двумя методологиями (я был в растерянности, когда пытался Google)
Также любые личные мнения и / или предпочтения. Меня больше обучали рекурсии как инструменту для выполнения работы, и мне хотелось бы услышать профессиональные (и любительские) мнения.
Также были бы полезны хорошие чтения по рекурсивным структурам / методологиям, хотя это не является целью этого сайта (тем более я не продолжаю задавать потенциально глупые вопросы)