Wie Implementieren stack mit Priorität in die Warteschlange?
, Wie die Umsetzung stack mit Priorität in die Warteschlange?
Jungs das ist ein Microsoft Interview-Frage für Software Engineer/Developer.Ich kann einfach nicht Sinn der Frage.Also ich goggled und gefunden:
Stapel und Warteschlangen können modelliert werden, als bestimmte Arten von priority queues. In einem Stapel, die Priorität jedes eingefügte element ist streng monoton Steigend; so, das Letzte eingefügte element ist immer das erste abgerufen werden.
Also, was diese Frage will uns zu tun.Als Stapel (korrigiert mich, wenn falsch) bin, werden implizit implementiert, die als priority-queues (Priorität monoton steigende als Elemente Hinzugefügt werden).
Weiß jemand die Bedeutung dieser Frage.Was sollen wir tun, wenn diese Art von Frage in einem interview gefragt.
In einem Wort: schlecht.
Jungs immer noch nicht, wie Sie zur Umsetzung des LIFO-Verhalten des Stacks in der priority queue.
+1 zu SteveJessop zu sagen, "ich nehme an, der Punkt ist vielleicht nicht so sehr die tatsächliche Umsetzung, als eine Art und Weise zu untersuchen, wie eine bestimmte Priorität-Warteschlange verhält sich mit einer bestimmten Nutzung Muster, das könnte ganz normal sein"
InformationsquelleAutor Algorithmist | 2011-02-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Pseudocode:
LIFO-Verhalten folgt aus der Tatsache, dass jedes neue element geschoben wird, mit einer Priorität höher als alle aktuellen Elemente, so wird es knallte, bevor Sie.
Gibt es zwei Möglichkeiten, um eine Antwort auf diese interview-Frage. Man ist zu erklären, im detail die Struktur oben. Die zweite ist kurz zu erwähnen, Murmele etwas von O(lg n) und sagen, Sie würden nie implementiert einen stack, auf diese Weise.
Tut es zählen als pseudocode, wenn es auch in C++? :p
Es ist kein Gültiger C++, da wäre alles
private
undElement
keinen Konstruktor hat. Wenn ich zu faul bin zu schreiben richtigen code, ich nenne das Ergebnis pseudocode 🙂Das ist gültiges C++. Es ist nicht eine vollständige linkable-Programm, aber es ist immer noch gültiges C++.
prio, Key elem; ist kein Gültiger C++, noch ist die Zuordnung
int top_priority = 0;
in der Klasse Körper.InformationsquelleAutor Fred Foo
Wenn Sie nicht wissen, was eine Priorität ist, Fragen Sie. Wenn Sie nicht wissen, was ein stack ist, Fragen Sie. Wenn Sie nicht verstehen, die Frage, der Fragen. Jetzt sollte man hoffentlich in der Lage sein, einen Adapter wie den folgenden erforderlich ist.
InformationsquelleAutor OrangeDog
Solche Fragen verlangen, dass Sie denken, ein bisschen tiefer( aber nicht so tief mit diesem).
Die Erklärung für diese Antwort ist, anstelle von einfügen jedes element mit den Werten als Schlüssel, sollten Sie wickeln Sie Sie in ein Objekt, und weisen Sie um als Attribut. Sie sollten diesen Auftrag als Schlüssel.
Beispiel-C-Code:
Nicht eine link-Liste, eine PriorityQueue. Datenpaket enthält die Daten, die nur eine ganze Zahl sein.
InformationsquelleAutor Shamim Hafiz
Hier ist die java-Implementierung für diese Frage.
InformationsquelleAutor shalvi_pandita
Implementieren Sie einen stack mit einem priority queue( z.B. PQ) mit min-heap. Sie benötigen eine extra integer-variable (sagen wir t). 't' verwendet werden, wie die Priorität beim einfügen/löschen von Elementen aus PQ.
Müssen Sie initialisieren t (sagen wir t=100) auf einen Wert ab.
Hinweis: Sie können auch die system-Zeit, push-Elemente nach der Priorität.
InformationsquelleAutor Prateek Joshi