再帰を使用するクラスが拡張できる親Javaクラスを作成する必要があります。親クラスは、呼び出しスタックが変更されるたびに(メソッドを入力するか、一時的に別のメソッド呼び出しに移動するためにそのままにしておくか、メソッドを終了する)、それを出力することができます。コンソールに印刷したいのですが、毎回コンソールもクリアしてスタックを水平に表示し、各スタックの高さを確認して、何が飛び出したか、何が飛び出したかを確認できるようにします...ベースラインの場合も印刷します再帰関数で到達しました。
初め。StackTraceElementsクラスとThreadクラスを使用して、手動で呼び出すことなく、スタックが要素をポップまたはプッシュしたときに自動的に検出するにはどうすればよいですか?
第二に、私はどのように清算を行うのでしょうか?
たとえば、私がコードを持っていた場合:
public class recursion(int i)
{
private static void recursion(int i)
{
if(i < 10)
System.out.println('A');
else
{
recursion(i / 10 );
System.out.println('B');
}
}
public static void main(String[] argv)
{
recursion(102);
}
}
main()に入るとき、main()からrecursion(102)に入るとき、recursion(102)からrecursion(102/10)に入るとき、recursion(102)に入るとき、スタックを出力する必要があります。 recursion(10)からrecursion(1)であるrecursion(10/10)に入ります。メッセージがベースラインrecursion(1)に達したときにメッセージを出力します。次に、関数recursion(10)、recursion(102)、およびmain()の逆再訪問のスタックを出力します。最後に、main()を終了することを出力します。