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