Java - 绘制递归调用的图表

时间:2010-12-12 01:42:44

标签: java recursion

我有以下代码

public static int unknown(String x)
{
if ((x.length()==1) && (x.equals("1")))
    return 1;
else if ((x.length()==1) && (x.equals("0")))
        return 0;
else if (x.charAt(x.length()-1)=='1')
     return 1+ 2*unknown(x.substring(0,x.length()-1));
else
    return 0+2*unknown(x.substring(0,x.length()-1));
}

我的教授说我必须绘制递归调用的图表。他在谈论什么样的图表?我应该如何展示它?感谢。

P.S。被调用的字符串是“101011”,或43。

-Dan

2 个答案:

答案 0 :(得分:6)

例如,“101”的图表看起来像这样:

unknown(101)
 -> 1 + 2 * unknown(10) 
   -> 1 + 2 * (0 + 2 * unknown(1))
     -> 1 + 2 * (0 + 2 * 1)
   -> 1 + 2 * 2
 -> 5

答案 1 :(得分:3)

他希望您绘制一个树,其中每个节点都是对该函数的调用,并指向它所做的子调用。