Я не уверен, правильно ли я понимаю ваш вопрос, но постараюсь ответить на него, дайте мне знать, если это неправильно.
Я понял, что вы хотите каким-то образом отслеживать свой стек внутри рекурсивной функции. Один из способов сделать это - иметь структуру данных Stack и функцию, которая рисует структуру данных, то, как вы хотите ее нарисовать, зависит от вас, а сейчас, возможно, просто нарисуйте стек как что-то вроде [---]
с '-'
рекурсивная глубина.
Вот пример, подобный C ++:
Итак, мы имеем:
Stack recursiveFunctionTrackingStack; //Stack of something, maybe just '-'
void DrawStack(const Stack& aStack);
и другой тип что-то вроде:
struct StackUpdater
{
StackUpdater(){ recursiveFunctionTrackingStack.push('-'); }
StackUpdater(const string& somevalue)
{
recursiveFunctionTrackingStack.push(somevalue);
}
~StackUpdater(){ recursiveFunctionTrackingStack.pop(); }
}
таким образом, StackUpdater помещает что-то в структуру данных Stack, когда создается его объект, и выскакивает, когда он разрушается.
Теперь внутри рекурсивной функции, которую мы можем сделать (используя ваш фрагмент кода):
recursiveMethod(){
if(){ return }
else{
{
StackUpdater su(pushedInValue); //Value pushed
variable <- recursiveMethod();
DrawStack(recursiveFunctionTrackingStack);
} //Value popped on destruct.
DrawStack(recursiveFunctionTrackingStack);
return variable
}}
Может быть, вы хотите что-то в этом роде. Если нет, уточните, пожалуйста, вопрос.
Надеюсь, это все равно поможет.