Informatik "Rätsel"?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Du erstellst das neue Element, trägst als "next" den derzeit ersten konten der Queue ein und setzt dann den derzeit ersten Knoten der Queue auf das neue Element:

newElem.next = queue.head;
queue.head = newElem;

Wohlgemerkt: Wenn du Elemente verschiedenster Priorität in der Queue hast und das neue Element an der genau passenden Stelle einfügen möchtest, wird es komplizierter, da du dann erst die passende Stelle finden müsstest.

Mit einer reinen Queue geht das nur über Umwege, über eine weitere Queue.

Um an beiden Seiten einzufügen, benötigt man wenigstens eine Deque (Erweiterung von Stack und Queue, lässt an beiden Enden Anfügen und Entnehmen zu).

-----

Für diese Art von Aufgabe würde ich eine Klasse PrioritizingQueue definieren, die Einsortierungen automatisch vornimmt. (Vermutlich als eine Art verkettete Liste.)

Woher ich das weiß:Berufserfahrung – Software-Entwickler