(Java)计算方法的递归调用(但始终是新实例)

时间:2019-05-25 12:54:24

标签: java recursion methods count instance

我想计算输入递归方法的频率。问题在于,对于每个递归调用,我都使用该类的不同实例。因此,我的计数器变量将始终设置回原始值,然后仅计数一次。因此,无论输入方法多久,我都得到相同的值。

一种解决方案是创建一个新的Class,该类中带有一个可正确计数的计数器变量。但是有更好的解决方案吗?看起来不太好。

static class SearchTree
{

      private Node node;
      private SearchTree left;
      private SearchTree right;

          private int count= 0;

这是我要使用count变量的方法。它总是显示1,因为我递归地将其与SearchTree的新实例一起使用

 public SearchTree select(int i)
{

   if(node.size != 0)
      {
         count++;
     System.out.println("Count: " + count);
     left.select(i);               
}



private class Node
{
   public int key;
   public int size;

   public Node(int x, int size)
   {
      key = x;
      this.size= size;
   }

}

}

1 个答案:

答案 0 :(得分:2)

count必须是class variable。您可以使用关键字static声明类变量:

private static int count = 0;