鍊錶是計算機科學中一種基礎的數據結構,其元素(稱為節點)通過指針依次連接。與數組不同,鍊錶是動態的,這意味著它們的大小可以增長或縮小,而無需調整大小操作。本教程將介紹在 PHP 中實現鍊錶的基礎知識。
鍊錶節點的結構
鍊錶中的每個節點都由兩部分組成:
以下是在 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中文網其他相關文章!