再帰を、C言語の関数コール&CPUのスタックで実装するのではなく、
自前のループとスタックなデータ構造で実装すれば、
ヒープは食うかもしれないが、CPUのスタックは食わないよね。