首页 > 后端开发 > php教程 > PHP 中的链接列表简介:初学者指南

PHP 中的链接列表简介:初学者指南

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 中的链接列表简介:初学者指南的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板