【发布时间】:2019-05-25 12:54:24
【问题描述】:
我想计算输入递归方法的频率。问题是,对于每个递归调用,我都使用该类的不同实例。所以我的计数器变量将始终设置回原始值,然后只计数一次。因此,无论输入方法的频率如何,我都会得到相同的值。
一种解决方案是创建一个新的类,其中包含一个计数器变量,它可以正确计数。但是有更好的解决方案吗?看起来不是很好。
static class SearchTree
{
private Node node;
private SearchTree left;
private SearchTree right;
private int count= 0;
这是我想使用计数变量的方法。它总是显示为 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;
}
}
}
【问题讨论】:
-
将
count设置为静态。 -
对于这样一个简单的练习,您实际上只关心总体 调用的数量,使用静态 计数器是最简单的答案。
标签: java recursion methods count instance