노드의 우선 순위가 빈도 인 노드의 우선 순위 대기열을 만들고 싶습니다. 그러나 출력에는 올바른 위치의 첫 번째 요소가 포함되지 않습니다. 나머지는 모두 올바른 위치에 있습니다.Java 문제의 우선 순위 대기열 순서 지정
import java.util.*;
class node implements Comparable<node>{
char key;
int freq;
node(){}
node(char k,int f){
key=k;
freq=f;
}
public int compareTo(node n){
if(freq>n.freq)return 1;
return 0;
}
}
public class test{
public static void main(String[] args){
node x=new node('x',4);
node a=new node('a',2);
node b=new node('b',1);
node c=new node('c',7);
PriorityQueue<node> q = new PriorityQueue<node>();
q.offer(a);
q.offer(b);
q.offer(c);
q.offer(x);
while(!q.isEmpty()){
node d=q.poll();
System.out.println(d.key+" "+d.freq);
}
}
}
출력 :
a 2
b 1
x 4
c 7
는 주문이 감사합니다 C, A, X, ㄱ 할 수 없습니다.
다음 O를 반환의 필요성은 무엇이어야 하는가? – Jignesh
객체가 같다고 생각 될 때, 즉 주파수가 동일 할 때 0이 반환됩니다. –