


PHP-Standardbibliothek spl verknüpfte Liste, Stapel, Warteschlange
Doppelt verknüpfte Listenklasse: SplDoublyLinkedList
1. Methoden zum Hinzufügen und Löschen von Knoten
Push: Fügen Sie einen Knoten am Ende von ein die verlinkte Liste
pop: Holen Sie sich den Endknoten in der verknüpften Liste und löschen Sie diesen Knoten aus der verknüpften Liste. Die Operation ändert nicht die Position des aktuellen Zeigers
unshift: Füge einen Knoten am Kopf der verknüpften Liste ein
Verschiebung: Löschen Sie einen Kopfknoten einer verknüpften Liste
2. Zeigeroperationsmethode
Zurückspulen: Lassen Sie den aktuellen Zeiger der verknüpften Liste auf den Kopf der verknüpften Liste zeigen (d. h. unten)
current: Rufen Sie das Element ab, auf das der aktuelle Knotenzeiger der verknüpften Liste zeigt. Vor dem Aufruf muss Rewind aufgerufen werden. Wenn der Knoten, auf den verwiesen wird, gelöscht wird, zeigt er auf einen leeren Knoten
next: Lassen Sie den aktuellen Zeiger der verknüpften Liste auf den nächsten Knoten zeigen, und der Rückgabewert von current ändert sich entsprechend
unten: Holen Sie sich das Kopfelement der verknüpften Liste, die aktuelle Zeigerposition bleibt unverändert
top: Holen Sie sich das Endelement der verknüpften Liste, die aktuelle Zeigerposition bleibt unverändert
3 Andere Methoden (Verwendung siehe Stack-Klasse)
gültig: Überprüfen Sie, ob noch Knoten in der Verknüpfte Liste, Sie können sie beim Schleifen der Ausgabe verwenden. Treffen Sie ein Urteil
count: zählt die Anzahl der Knoten in der verknüpften Liste
Schlüssel: Gibt den Schlüsselwert des aktuellen Knotens
zurück
offsetSet: Legen Sie den Wert des angegebenen Schlüssels fest. Hinweis: Wenn der Schlüssel 0 ist, zeigt 0 auf den Kopf oder das Ende in der verknüpften Liste und auf den oberen Rand des Stapels.
offunset: Registrierung des Werts des angegebenen Schlüssels aufheben
<code><span><?</span>php <span>/** * Created by 马廷广 * User: 马廷广 * Date: 2015/8/5 * Time: 10:52 */</span><span>$obj</span><span>=</span><span>new</span> SplDoublyLinkedList(); <span>$obj</span><span>-></span>push(<span>'b'</span>); <span>$obj</span><span>-></span>push(<span>'c'</span>); <span>$obj</span><span>-></span>unshift(<span>'a'</span>); var_dump(<span>$obj</span>); <span>/* array(3) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> string(1) "c" } ) */</span><span>$obj</span><span>-></span>rewind(); var_dump(<span>$obj</span><span>-></span>current());<span>//string(1) "a"</span><span>$obj</span><span>-></span>next(); var_dump(<span>$obj</span><span>-></span>current());<span>//string(1) "a"</span> var_dump(<span>$obj</span><span>-></span>bottom());<span>//string(1) "a"</span> var_dump(<span>$obj</span><span>-></span>top());<span>//string(1) "c"</span> var_dump(<span>$obj</span><span>-></span>pop());<span>//string(1) "c"</span> var_dump(<span>$obj</span>); <span>/* * array(2) { [0]=> string(1) "a" [1]=> string(1) "b" } */</span> var_dump(<span>$obj</span><span>-></span>shift());<span>//string(1) "a"</span> var_dump(<span>$obj</span>); <span>/* * array(1) { [0]=> string(1) "b" } */</span></code>
Stack-Klasse: SplStack-Klasse, geerbt von der SplDoublyLinkedList-Klasse
Prinzip: Die unterste Ebene der Stack-Klasse wird vom Stack implementiert, und Der Stapel ist eine erweiterte Nachverarbeitung. Daher weisen einige von der SplDoublyLinkedList-Klasse geerbte Methoden der SplStack-Klasse einige Unterschiede im Verständnis auf, z. B. die Rewind-Methode. Nachdem Spl die Rewind-Methode verwendet hat, zeigt der Zeiger auf den oberen Rand des Stapels in der Abbildung. Push- und Pop-Operationen auf die oberen Elemente des Stapels, Unshift- und Shift-Operationen auf das untere Element des Stapels
<code><span><?</span>php <span>/** * Created by 马廷广 * User: 马廷广 * Date: 2015/8/5 * Time: 11:47 */</span><span>$stack</span><span>=</span><span>new</span> SplStack(); <span>$stack</span><span>-></span>push(<span>'a'</span>); <span>$stack</span><span>-></span>push(<span>'b'</span>); <span>$stack</span><span>-></span>push(<span>'c'</span>); echo <span>$stack</span><span>-></span>count();<span>//3</span><span>$stack</span><span>-></span>rewind(); echo <span>$stack</span><span>-></span>current();<span>//c</span><span>$stack</span><span>-></span>offsetSet(<span>0</span>,<span>'d'</span>);<span>//offsetSet中0指向的是图中的栈顶,由栈顶向下递增1,2,3,4</span><span>while</span>(<span>$stack</span><span>-></span>valid()){ echo <span>$stack</span><span>-></span>key()<span>.</span><span>"->"</span><span>.</span><span>$stack</span><span>-></span>current(); <span>$stack</span><span>-></span>next(); } <span>/*2->d 1->b 0->a */</span></code>
Warteschlangenklasse: SplQueue-Klasse, geerbt von der SplDoublyLinkedList-Klasse
enqueue: Betreten Sie die Warteschlange
dequeue: Verlassen Sie die Warteschlange
Die Methoden rewind, offsetSet und andere der Queue-Klasse ähneln der verknüpften Liste
<code><?php /** * Created <span>by</span> 马廷广 * <span>User</span>: 马廷广 * <span>Date</span>: <span>2015</span>/<span>8</span>/<span>5</span> * <span>Time</span>: <span>12</span>:<span>36</span> */ $obj = <span>new</span> SplQueue(); $obj->enqueue(<span>'a'</span>); $obj->enqueue(<span>'b'</span>); $obj->enqueue(<span>'c'</span>); var_dump($obj); /* [<span>0</span>]<span>=></span> string(<span>1</span>) <span>"a"</span> [<span>1</span>]<span>=></span> string(<span>1</span>) <span>"b"</span> [<span>2</span>]<span>=></span> string(<span>1</span>) <span>"c"</span> } */ $obj->unshift(<span>"d"</span>); $obj->push(<span>'e'</span>); var_dump($obj); /* * array(<span>5</span>) { [<span>0</span>]<span>=></span> string(<span>1</span>) <span>"d"</span> [<span>1</span>]<span>=></span> string(<span>1</span>) <span>"a"</span> [<span>2</span>]<span>=></span> string(<span>1</span>) <span>"b"</span> [<span>3</span>]<span>=></span> string(<span>1</span>) <span>"c"</span> [<span>4</span>]<span>=></span> string(<span>1</span>) <span>"e"</span> } */ $obj->rewind(); echo $obj->current();<span>//</span>d $obj->offsetSet(<span>0</span>,<span>'h'</span>); var_dump($obj); /* * array(<span>5</span>) { [<span>0</span>]<span>=></span> string(<span>1</span>) <span>"h"</span> [<span>1</span>]<span>=></span> string(<span>1</span>) <span>"a"</span> [<span>2</span>]<span>=></span> string(<span>1</span>) <span>"b"</span> [<span>3</span>]<span>=></span> string(<span>1</span>) <span>"c"</span> [<span>4</span>]<span>=></span> string(<span>1</span>) <span>"e"</span> } */</code>
Copyright-Erklärung: Dieser Artikel ist ein Originalartikel des Bloggers und darf nicht ohne reproduziert werden die Erlaubnis des Bloggers.
Das Obige stellt die verknüpften Listen, Stapel und Warteschlangen der PHP-Standardbibliothek spl vor, einschließlich des Inhalts. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Viele Benutzer werden sich bei der Auswahl von Smartwatches für die Marke Huawei entscheiden. Viele Benutzer sind neugierig auf den Unterschied zwischen Huawei GT3pro und GT4. Was sind die Unterschiede zwischen Huawei GT3pro und GT4? 1. Aussehen GT4: 46 mm und 41 mm, das Material ist Glasspiegel + Edelstahlgehäuse + hochauflösende Faserrückschale. GT3pro: 46,6 mm und 42,9 mm, das Material ist Saphirglas + Titangehäuse/Keramikgehäuse + Keramikrückschale 2. Gesundes GT4: Mit dem neuesten Huawei Truseen5.5+-Algorithmus werden die Ergebnisse genauer. GT3pro: EKG-Elektrokardiogramm sowie Blutgefäß und Sicherheit hinzugefügt

Konvertieren Sie grundlegende Datentypen mit der Java-Funktion String.valueOf() in Strings. Wenn wir in der Java-Entwicklung grundlegende Datentypen in Strings konvertieren müssen, ist eine gängige Methode die Verwendung der Funktion valueOf() der String-Klasse. Diese Funktion kann Parameter grundlegender Datentypen akzeptieren und die entsprechende Zeichenfolgendarstellung zurückgeben. In diesem Artikel untersuchen wir, wie die Funktion String.valueOf() für grundlegende Datentypkonvertierungen verwendet wird, und stellen einige Codebeispiele dafür bereit

Methode zum Konvertieren eines char-Arrays in einen String: Dies kann durch Zuweisung erreicht werden. Verwenden Sie die Syntax {char a[]=" abc d\0efg ";string s=a;}, damit das char-Array dem String direkt einen Wert zuweisen und ausführen kann Der Code zum Abschließen der Konvertierung.

Eine Dump-Datei bezieht sich normalerweise auf eine Binärdatei, die auch als Dump-Datei oder Core-Dump-Datei bezeichnet wird. Diese Art von Datei wird vom Computersystem generiert, wenn ein schwerwiegender Fehler oder eine ungewöhnliche Situation auftritt. Sie wird zum Speichern des Status, des Stapels, der Register, der Speicherbilder, der Protokolle und anderer Informationen des Systems oder der Anwendung verwendet.

Warum das Snipping-Tool unter Windows 11 nicht funktioniert Das Verständnis der Grundursache des Problems kann dabei helfen, die richtige Lösung zu finden. Hier sind die häufigsten Gründe, warum das Snipping Tool möglicherweise nicht ordnungsgemäß funktioniert: Focus Assistant ist aktiviert: Dies verhindert, dass das Snipping Tool geöffnet wird. Beschädigte Anwendung: Wenn das Snipping-Tool beim Start abstürzt, ist es möglicherweise beschädigt. Veraltete Grafiktreiber: Inkompatible Treiber können das Snipping-Tool beeinträchtigen. Störungen durch andere Anwendungen: Andere laufende Anwendungen können mit dem Snipping Tool in Konflikt geraten. Das Zertifikat ist abgelaufen: Ein Fehler während des Upgrade-Vorgangs kann zu diesem Problem führen. Diese einfache Lösung ist für die meisten Benutzer geeignet und erfordert keine besonderen technischen Kenntnisse. 1. Aktualisieren Sie Windows- und Microsoft Store-Apps

Ersetzen Sie Zeichen (Strings) in einem String mit der Java-Funktion String.replace(). In Java sind Strings unveränderliche Objekte, was bedeutet, dass der Wert eines String-Objekts nach der Erstellung nicht mehr geändert werden kann. Es kann jedoch vorkommen, dass Sie bestimmte Zeichen oder Zeichenfolgen in einer Zeichenfolge ersetzen müssen. Zu diesem Zeitpunkt können wir die Methode replace () in der String-Klasse von Java verwenden, um das Ersetzen von Zeichenfolgen zu implementieren. Die Methode replace() der Klasse String hat zwei Typen:

Hallo zusammen, heute werde ich die Grundkenntnisse von Java: String mit Ihnen teilen. Unnötig zu erwähnen, wie wichtig die String-Klasse ist. Man kann sagen, dass sie die am häufigsten verwendete Klasse in unserer Back-End-Entwicklung ist, daher ist es notwendig, darüber zu sprechen.

OPStack ist ein Open-Source-Blockchain-Framework, das von Optimism Collective, der Entwicklungsgruppe hinter dem Optimism Network, veröffentlicht wurde. Es ist ein wichtiges Werkzeug sowohl für die Ethereum- als auch für die Optimism-Community. Das Hauptziel von OPStack besteht darin, das Optimism-Netzwerk zu stärken und wichtige Softwaretools für das Optimism-Mainnet sowie die kommende Optimism-Superchain und ihr Governance-Modell bereitzustellen. Durch die Bereitstellung einer entwicklerorientierten Umgebung besteht die Kernidee von OPStack darin, Wachstum und Innovation im Ethereum-Bereich zu fördern. Es ebnet den Weg für innovative Entwicklungen und vereinfacht die Erstellung von Blockchains. OPStac
