PHP-Datenstruktur: Der Charme verknüpfter Listen, Erkundung der dynamischen Datenorganisation

WBOY
Freigeben: 2024-06-04 12:53:57
Original
544 Leute haben es durchsucht

Eine verknüpfte Liste ist eine Datenstruktur, die eine Reihe von Knoten mit Daten und Zeigern zum Organisieren von Elementen verwendet. Sie eignet sich besonders für die Verarbeitung großer Datensätze und häufige Einfüge-/Löschvorgänge. Zu seinen Grundkomponenten gehören Knoten (Daten und Zeiger auf den nächsten Knoten) und Kopfknoten (die auf den ersten Knoten in der verknüpften Liste zeigen). Zu den gängigen verknüpften Listenoperationen gehören: Hinzufügen (Endeinfügung), Löschen (spezifischer Wert) und Durchlaufen.

PHP-Datenstruktur: Der Charme verknüpfter Listen, Erkundung der dynamischen Datenorganisation

PHP-Datenstruktur: Der Charme einer verknüpften Liste

Einführung

Eine verknüpfte Liste ist eine lineare Datenstruktur, deren Elemente als eine Reihe von Knoten organisiert sind, wobei jeder Knoten Daten und einen Zeiger auf den nächsten Knoten enthält . Im Gegensatz zu einem Array müssen die Elemente einer verknüpften Liste nicht zusammenhängend im Speicher gespeichert werden, was sie ideal für die Verarbeitung großer Datenmengen und häufige Einfüge- und Löschvorgänge macht.

Konzept

Die Grundkomponente einer verknüpften Liste ist ein Knoten. Jeder Knoten besteht aus den folgenden Teilen:

  • Daten: speichert den tatsächlichen Wert
  • Zeiger (nächster): zeigt auf den nächsten Knoten

Verknüpfte Listen interagieren über die Hauptknotenverbindung miteinander. Der Kopfknoten ist ein spezieller Knoten, der auf den ersten Knoten in der verknüpften Liste zeigt.

Operationen

Im Folgenden sind einige gängige Operationen aufgeführt, die in verknüpften Listen implementiert sind:

class Node {
    public $data;
    public $next;
}

class LinkedList {
    private $head;

    // 添加新节点到尾部
    public function append($data) {
        $new_node = new Node();
        $new_node->data = $data;

        if ($this->head === null) {
            $this->head = $new_node;
        } else {
            $current_node = $this->head;
            while ($current_node->next !== null) {
                $current_node = $current_node->next;
            }
            $current_node->next = $new_node;
        }
    }

    // 从链表中删除特定值
    public function delete($data) {
        if ($this->head === null) {
            return;
        }

        if ($this->head->data === $data) {
            $this->head = $this->head->next;
            return;
        }

        $current_node = $this->head;
        while ($current_node->next !== null) {
            if ($current_node->next->data === $data) {
                $current_node->next = $current_node->next->next;
                return;
            }
            $current_node = $current_node->next;
        }
    }

    // 遍历链表并打印数据
    public function traverse() {
        $current_node = $this->head;
        while ($current_node !== null) {
            echo $current_node->data . " ";
            $current_node = $current_node->next;
        }
    }
}
Nach dem Login kopieren

Praktischer Fall

Erstellen Sie eine verknüpfte Liste und führen Sie einige Operationen aus:

$list = new LinkedList();

$list->append(10);
$list->append(20);
$list->append(30);

echo "链表:";
$list->traverse();
echo PHP_EOL;

$list->delete(20);

echo "删除 20 后:" ;
$list->traverse();
echo PHP_EOL;
Nach dem Login kopieren

Ausgabe:

链表:10 20 30
删除 20 后:10 30
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonPHP-Datenstruktur: Der Charme verknüpfter Listen, Erkundung der dynamischen Datenorganisation. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage