Aktueller Standort: Startseite> Neueste Artikel> PHP implementiert verknüpfte Listen-Warteschlangen: Verwenden Sie Tail-Zeiger, um erste in erstmalige Warteschlangen zu implementieren

PHP implementiert verknüpfte Listen-Warteschlangen: Verwenden Sie Tail-Zeiger, um erste in erstmalige Warteschlangen zu implementieren

gitbox 2025-07-30

Was ist eine verknüpfte Listenwarteschlange

Eine Warteschlange ist eine FIFO-Datenstruktur (Erst-In-First-Out-Out), mit der Elemente nur am Ende des Teams und am Ende des Teams gelöscht werden können. Eine Kettenwarteschlange ist eine Warteschlangestruktur, die über eine verknüpfte Liste implementiert wird, die die Größe der Warteschlange dynamisch erweitern kann. Kettenwarteschlangen werden in vielen Szenarien häufig verwendet, in denen erste Funktionen erforderlich sind.

Implementierung der verknüpften Listen -Warteschlangen

Eine verknüpfte List -Warteschlange wird unter Verwendung einer verknüpften Listenstruktur implementiert. Der verknüpfte Listenknoten enthält zwei Teile: eine Datendomäne und eine Zeigerdomäne. Das Feldzeiger zeigt auf den nächsten verknüpften Listenknoten. Die Implementierung einer Warteschlange hängt vom Kopf- und Schwanzzeiger ab, die auf das erste Element in der Warteschlange hinweisen, und der Schwanzzeiger zeigt auf das letzte Element.

Linked List Node Definition

Ein verknüpfter Listenknoten besteht aus zwei Teilen: einer Datendomäne und einer Zeigerdomäne, und die Zeigerdomäne zeigt auf den nächsten Knoten. Das Folgende ist der Code für PHP, um verknüpfte Listenknoten zu implementieren:

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

Warteschlange Definition

Die Warteschlangendefinition enthält zwei Zeiger: den Kopf und den Schwanz des Teams. Der Heckzeiger verweist auf das letzte Element in der Warteschlange und der Kopfzeiger zeigt auf das erste Element. Die Länge der Warteschlange nimmt mit der Zugabe von Elementen zu. Das Folgende ist der Code für die Implementierung der Warteschlange in PHP:

 
class Queue {
    private $head;
    private $tail;

    public function __construct() {
        $this->head = null;
        $this->tail = null;
    }

    public function isEmpty() {
        return $this->head === null;
    }

    public function enqueue($data) {
        $newNode = new Node();
        $newNode->data = $data;
        $newNode->next = null;

        if ($this->isEmpty()) {
            $this->head = $this->tail = $newNode;
        } else {
            $this->tail->next = $newNode;
            $this->tail = $newNode;
        }
    }

    public function dequeue() {
        if ($this->isEmpty()) {
            return null;
        }

        $data = $this->head->data;
        $this->head = $this->head->next;

        if ($this->head === null) {
            $this->tail = null;
        }

        return $data;
    }
}

Szenarien verwenden

In den folgenden Szenarien werden häufig Listen -Warteschlangen verwendet:

  • BRAFTH-First-Suchalgorithmus (BFS)
  • Thread -Pool -Aufgabenzuweisung
  • Warteschlange drucken usw.

Zusammenfassen

Linked List-Warteschlangen sind eine häufige Möglichkeit, Datenstrukturen (First-In-First-Out) implementieren und für viele Szenarien geeignet sind, in denen Aufgaben nacheinander verarbeitet werden müssen. Durch die Flexibilität verknüpfter Listen können Warteschlangen dynamisch erweitert werden, um verschiedene Anwendungsanforderungen zu erfüllen. Die Implementierung der verknüpften Listen -Warteschlangen ist nicht nur einfach und effizient, sondern auch ein unverzichtbares Tool für die Programmierung.