Не кажется мне рекурсивно-дружественной проблемой.Но я уверен, что это может быть сделано таким образом.
Мне приходят на ум два подхода:
Опция # 1: Сделать функциональные вызовы рекурсии и возвраты совпадающими со стековыми операциями push и popописано в вики.
Недостатком этого подхода является то, что вы быстро обнаружите, что возвращаемые данные из функции могут быть довольно сложными.Вероятно, это будет оператор.Может быть, с необязательным операндом (IE: номер).Вы будете возвращать структуры / объекты, которые, возможно, должны иметь операции (методы) над ними.
Опция # 2: Каждый рекурсивный вызов обрабатывает следующий символ входного потока.
Я думаю, что этот подход передал бы в качестве параметров стек и, возможно, «накопитель» для текущего числа - для накопления цифр в числе перед помещением его в стек.Будет возвращен один массивный числовой результат с хвостовой рекурсией.
Этот подход на самом деле просто переписывает цикл как рекурсию.
В любом случае, выяснить это самостоятельно должно быть сложно и познавательно!