Petite histoire, j'implémente un graphique et maintenant je travaille sur le Kruskal, j'ai besoin d'une file d'attente prioritaire. Ma définition d'une file d'attente prioritaire est que l'élément avec la plus petite clé viendrait en premier? Est-ce mal? Parce que quand j'insère les bords pondérés (ou nombres) dans la file d'attente ils ne finissent pas triés.Comment la file d'attente de priorité Java est-elle supposée fonctionner?
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);
Cela imprimerait cela; [1, 54, 51, 102, 99, 55]. Ce n'est pas trié comme je le veux! Et oui j'ai fait un comperator qui va dans la file d'attente prioritaire qui extrait le nombre de l'objet de bord et compare basé sur ce int. Donc cela devrait fonctionner, ou est-ce que j'ai complètement mal compris tout le concept de fonctionnement de cette structure de données?
Pour obtenir une disposition triée, vous devez utiliser 'while (! Tja.isEmpty()) { System.out.println (tja.poll()); } ' – serhii