단편 소설, 그래프를 구현 중입니다. 이제 Kruskal에서 작업 중입니다. 우선 순위 대기열이 필요합니다. 우선 순위 대기열에 대한 나의 정의는 가장 작은 키를 가진 요소가 먼저 올 것입니까? 잘못인가? 왜냐하면 큐에 가중치있는 에지 (또는 숫자)를 삽입 할 때 정렬되지 않기 때문입니다.Java 우선 순위 대기열은 어떻게 작동합니까?
PriorityQueue<Integer> tja = new PriorityQueue<Integer>();
tja.add(55);
tja.add(99);
tja.add(1);
tja.add(102);
tja.add(54);
tja.add(51);
System.out.println(tja);
이렇게 표시됩니다. [1, 54, 51, 102, 99, 55]. 이것은 내가 원하는 것처럼 정렬되지 않습니다! 그리고 예. 가장자리 객체에서 숫자를 추출하고 해당 int를 기반으로 비교하는 우선 순위 대기열로가는 comperator를 만들었습니다. 이렇게하면 효과가 있습니까? 아니면이 데이터 구조가 어떻게 작동하는지 전체 개념을 완전히 오해 한 것입니까?
정렬 된 레이아웃을 얻으려면 'while (! tja.isEmpty()) { System.out.println (tja.poll());을 사용해야합니다. }' – serhii