Je vais être honnête, je ne suis pas sûr des termes que j'ai utilisés dans le titre.Quelle est la différence entre la récursivité et la récursivité de l'instance de classe
Fondamentalement, je suis curieux de connaître la différence entre quelque chose comme:
class MyRecursiveClass
{
public:
int myData;
MyRecursiveClass* nextInLine;
int myRecursiveFunction(int data)
{
data+=myData;
if(nextInLine == null)
return data;
else
return nextInLine->myRecursiveFunction(data);
}
}
et
int staticRecursiveFunction(MyRecursiveClass* target, int currentData)
{
if(target == null)
return currentData;
currentData+=target->myData;
staticRecursiveFunction(target->nextInLine, currentData);
}
ou
int otherStaticRecursiveFunction(MyRecursiveClass* target)
{
if(target == null)
return 0;
return target->myData + otherStaticRecursiveFunction(target->nextInLine);
}
Fondamentalement, ce que je veux est les différences dans les frais généraux, comme ainsi que de meilleures conditions pour la différence entre les deux méthodologies (j'étais à perte quand j'ai essayé t o Google)
En outre, des opinions personnelles et/ou des préférences. On m'a enseigné la récursivité plus comme un outil pour faire un travail, et j'aimerais entendre des avis professionnels (et amateurs).
aussi bonnes lectures sur les structures récursives/méthodologies seraient appréciés, mais ce n'est pas le but de ce site (plus je ne garde pas poser des questions potentiellement muets)
Cela avait été mon hypothèse, mais l'hypothèse est la mère de tous ... eh bien, vous savez comment le dicton va. Je me souviens que mon Instructeur de Structures de Données utilisait toujours cette dernière méthode, même lorsqu'il s'agissait d'arbres/listes/hachages/tris etc. La seule fois où j'ai été obligé d'utiliser une méthode ou l'autre, c'était quand j'avais besoin d'utiliser des méthodes privées. données dans une classe. Je me demandais s'il y avait d'autres situations dans lesquelles l'un était plus approprié que l'autre, en fonction de sa préférence personnelle. –