Hallo,
ich soll eine Klasse schreiben, die eine Priority Queue darstellt. Diese soll das Interface Queue implementieren und zwei Konstruktoren haben, einen ohne Parameterliste, der die Elemente in natürlicher Reihenfolge abspeichert, und einen der einen Comparator übergeben bekommt. Außerdem sollen die Elemente in einer ArrayList gespeichert werden.
So weit so gut. Ich habe aber momentan noch das Problem, dass ich nicht weiß wie ich die Prioritäten speichern soll. Das Element mit der höchten Priorität kommt ja ganz nach vorne. Wenn ich jetzt ein Element hinzufüge, brauche ich ja nur zu prüfen, ob die Priorität höher als das erste Element ist oder nicht und es dann ggf. als erstes Element hinzufügen. So habe ich immer das Element mit der höchsten Priorität ganz vorne. Aber was ist, wenn das erste Element gelöscht wird? Woher weiß ich dann ohne die ganze Liste durchzugehen, welches das Element mit der zweit höchsten Priorität ist?
Ich bräuchte also eine Idee um die Prioritäten zu verwalten.
Vielen Dank & Grüße
ich soll eine Klasse schreiben, die eine Priority Queue darstellt. Diese soll das Interface Queue implementieren und zwei Konstruktoren haben, einen ohne Parameterliste, der die Elemente in natürlicher Reihenfolge abspeichert, und einen der einen Comparator übergeben bekommt. Außerdem sollen die Elemente in einer ArrayList gespeichert werden.
So weit so gut. Ich habe aber momentan noch das Problem, dass ich nicht weiß wie ich die Prioritäten speichern soll. Das Element mit der höchten Priorität kommt ja ganz nach vorne. Wenn ich jetzt ein Element hinzufüge, brauche ich ja nur zu prüfen, ob die Priorität höher als das erste Element ist oder nicht und es dann ggf. als erstes Element hinzufügen. So habe ich immer das Element mit der höchsten Priorität ganz vorne. Aber was ist, wenn das erste Element gelöscht wird? Woher weiß ich dann ohne die ganze Liste durchzugehen, welches das Element mit der zweit höchsten Priorität ist?
Ich bräuchte also eine Idee um die Prioritäten zu verwalten.
Vielen Dank & Grüße