0
私は、ツリー構造を含むJavaプログラムに取り組んでいます。この方法ではツリー全体を検索し、最大の数を持つ10の名前を見つけることになっています。私は本質的に「最後の最大値よりも低いが他の値よりも高い場合はそれを印刷する」というif文を使用してこれを試みてきました。問題は、私の方法が、最も一般的な10の名前を印刷するのではなく、10の最も一般的な名前を印刷することです。どんな助けでも大歓迎です。ありがとう!Javaのツリーから上位10個の値を引き出す
public static void mostPopularNameTree(){
popular(root,new Name("-1",'G',-1,-1),0);
}
private static void popular(Node local, Name prev, int i){
Name current = local.data;
int max = 0;
while(i<10){
if(current.getCount()<prev.getCount() && current.getCount()>max){
max = current.getCount();
prev = current;
if(local.left != null){
popular(local.left, prev, i);
}
if(local.right != null){
popular(local.right, prev, i);
}
}
i++;
System.out.println(current);
}
whileループで 'current'を表示していて、それを更新していません。 – Jeremy