hallo ich bin noch ein Student und ich bin ein bisschen verwirrt über das Stapeln und Anstehen? erste Frage ist,
Was ist der Hauptunterschied zwischen den beiden?
Übrigens gibt es zirkuläre Warteschlangen neben normalen Warteschlangen. Wie wäre es damit? wie arbeiten Sie ? Gibt es verschiedene Möglichkeiten zum Anstehen?
Ich benutze PHP, gibt es einen einfachen (sehr einfachen oder leicht zu lesenden) Beispielcode, auf dem ich lernen kann (Links sind auch in Ordnung.)?
gibt es Pop, Push und etc (Stacking und Queuing), gibt es so etwas in PHP?
Vielen Dank, dass Sie reinschauen.
1: Bei Stacks funktionieren die Einfüge- / Entfernungsoperationen am selben Ende der Datenstruktur (oben)
Bei Warteschlangen erfolgt das Einlegen an einem Ende (hinten) und das Entfernen am anderen Ende (vorne).
(Beide Bilder stammen aus den jeweiligen Wikipedia-Einträgen)
2: siehe Ссылка
In PHP würden Sie ein Array () verwenden, um Ihre Daten für beide Stapel und Warteschlangen zu speichern und sie mit den Funktionen array_ * zu bearbeiten. Sehen Sie sich Array-Funktionen auf php.net an
Sie haben
array_unshift - Setzen Sie ein neues Element auf den Anfang des Arrays.
Für einen Stapel würden Sie array_push und array_pop
Ein Ringpuffer, den ich als eigenständiges Objekt implementieren würde.
Es scheint, dass Sie auf den Unterschied zwischen First-In-First-Out- und Last-In-First-Out-Warteschlangen gelenkt werden. Ein Stack ist der erste und eine ringförmige Warteschlange ist eine effiziente Implementierung des letzteren.
Ein Stack ist eine LIFO-Warteschlange (last in, first out).
Sie können eine ringförmige Warteschlange erstellen. Diese waren am häufigsten in Kommunikationsschnittstellenpuffern vorhanden, da sie nur über begrenzten Speicher verfügten mit Daten asynchron und die Daten werden von der CPU zu verschiedenen Zeiten gelesen.
Sie können Warteschlangen in jeder Sprache erstellen, wenn Sie Ihre Sprache gut beherrschen.
Die PHP-Website bietet eine Menge Dokumentation.
Ein Stapel fügt Elemente vom selben Ende hinzu und entfernt sie.
Eine Warteschlange fügt der Rückseite Elemente hinzu und entfernt Elemente von vorne (wie eine Zeile in einer Bank.)
Es gibt einen Artikel über sie beide , der im Detail mit Codebeispielen erklärt.
Ein Ringspeicher hat nur wenig Platz und fügt Elemente kreisförmig hinzu und überschreibt die Objekte am Ende.
p>