首頁 > 後端開發 > php教程 > PHP中鏈接列表簡介:初學者&#S Guide

PHP中鏈接列表簡介:初學者&#S Guide

Linda Hamilton
發布: 2025-01-26 20:05:11
原創
791 人瀏覽過

Introduction to Linked Lists in PHP: A Beginner

鍊錶是計算機科學中一種基礎的數據結構,其元素(稱為節點)通過指針依次連接。與數組不同,鍊錶是動態的,這意味著它們的大小可以增長或縮小,而無需調整大小操作。本教程將介紹在 PHP 中實現鍊錶的基礎知識。

鍊錶節點的結構

鍊錶中的每個節點都由兩部分組成:

  1. 數據:存儲在節點中的值。
  2. 下一個:對下一個節點的引用(指針)。

以下是在 PHP 中實現基本節點的示例:

<code class="language-php">class Node {
    public $data;
    public $next;

    public function __construct($data) {
        $this->data = $data;
        $this->next = null;
    }
}</code>
登入後複製

實現簡單的鍊錶

為了管理節點,我們創建一個 LinkedList 類,該類維護列表的頭並提供操作它的方法。

基本操作

1. 將節點添加到末尾

我們通過迭代節點直到到達最後一個節點來將節點添加到列表的末尾。

<code class="language-php">class LinkedList {
    private $head;

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

    public function append($data) {
        $newNode = new Node($data);
        if ($this->head === null) {
            $this->head = $newNode;
        } else {
            $current = $this->head;
            while ($current->next !== null) {
                $current = $current->next;
            }
            $current->next = $newNode;
        }
    }
}</code>
登入後複製

2. 顯示列表

我們可以遍歷列表以打印所有元素。

<code class="language-php">public function display() {
    $current = $this->head;
    while ($current !== null) {
        echo $current->data . " -> ";
        $current = $current->next;
    }
    echo "NULL\n";
}</code>
登入後複製

3. 刪除節點

刪除節點包括查找節點並更新前一個節點的指針。

<code class="language-php">public function delete($data) {
    if ($this->head === null) {
        return;
    }

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

    $current = $this->head;
    while ($current->next !== null && $current->next->data !== $data) {
        $current = $current->next;
    }

    if ($current->next !== null) {
        $current->next = $current->next->next;
    }
}</code>
登入後複製

示例用法

以下是使用鍊錶實現的方法:

<code class="language-php">$linkedList = new LinkedList();
$linkedList->append(10);
$linkedList->append(20);
$linkedList->append(30);

echo "初始列表:\n";
$linkedList->display();

$linkedList->delete(20);
echo "删除 20 后:\n";
$linkedList->display();</code>
登入後複製

輸出:

<code>初始列表:
10 -> 20 -> 30 -> NULL
删除 20 后:
10 -> 30 -> NULL</code>
登入後複製

結論

鍊錶是用於動態數據操作的強大工具。雖然 PHP 具有內置的數組函數,這些函數通常具有類似的目的,但理解鍊錶對於掌握基礎數據結構和改進算法思維至關重要。此實現為更高級的結構(如雙向鍊錶和循環鍊錶)提供了一個起點。

以上是PHP中鏈接列表簡介:初學者&#S Guide的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板