当前位置:首页 > PHP

php 实现单链表

2026-02-13 13:42:55PHP

单链表的基本概念

单链表是一种线性数据结构,由一系列节点组成,每个节点包含数据域和指向下一个节点的指针域。最后一个节点的指针域通常指向 NULL,表示链表结束。

单链表的节点结构

在 PHP 中,单链表的节点可以用类表示:

class ListNode {
    public $data; // 数据域
    public $next; // 指针域

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

单链表的实现

以下是单链表的常见操作实现,包括插入、删除和遍历。

初始化链表

class LinkedList {
    private $head; // 头节点

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

在链表头部插入节点

public function insertAtHead($data) {
    $newNode = new ListNode($data);
    $newNode->next = $this->head;
    $this->head = $newNode;
}

在链表尾部插入节点

public function insertAtTail($data) {
    $newNode = new ListNode($data);
    if ($this->head === null) {
        $this->head = $newNode;
        return;
    }
    $current = $this->head;
    while ($current->next !== null) {
        $current = $current->next;
    }
    $current->next = $newNode;
}

删除指定值的节点

public function deleteNode($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;
    }
}

遍历链表并打印

public function printList() {
    $current = $this->head;
    while ($current !== null) {
        echo $current->data . " -> ";
        $current = $current->next;
    }
    echo "NULL\n";
}

示例用法

$list = new LinkedList();
$list->insertAtHead(10);
$list->insertAtTail(20);
$list->insertAtTail(30);
$list->printList(); // 输出: 10 -> 20 -> 30 -> NULL

$list->deleteNode(20);
$list->printList(); // 输出: 10 -> 30 -> NULL

注意事项

  • PHP 是弱类型语言,节点的数据域可以存储任意类型的数据。
  • 在删除节点时,需处理头节点和中间节点的不同情况。
  • 遍历链表时需检查当前节点是否为 NULL,避免空指针异常。

通过上述方法,可以在 PHP 中实现基本的单链表操作。

php 实现单链表

标签: 链表php
分享给朋友:

相关文章

php实现文件上传

php实现文件上传

PHP 文件上传实现方法 在 PHP 中实现文件上传需要处理 HTML 表单和服务器端脚本。以下是详细步骤: 创建 HTML 表单 使用 enctype="multipart/form-data"…

php实现websocket

php实现websocket

PHP 实现 WebSocket WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议。PHP 可以通过多种方式实现 WebSocket 功能,以下是几种常见的方法: 使用 Ratc…

php实现

php实现

PHP 实现的基本方法 PHP 是一种服务器端脚本语言,广泛用于 Web 开发。以下是 PHP 实现的一些常见方法。 变量与数据类型 PHP 变量以 $ 开头,支持多种数据类型: $n…

php 实现接口

php 实现接口

PHP 实现接口的方法 在 PHP 中,接口(Interface)用于定义一组方法的规范,而不包含具体的实现。类可以实现(implement)接口,并必须实现接口中定义的所有方法。 定义接口 接口通…

php 购物车实现

php 购物车实现

数据库设计 购物车功能通常需要设计数据库表存储商品和用户信息。常见的表包括products(商品表)、users(用户表)和cart(购物车表)。cart表通常包含字段:id(主键)、user_id(…

基于php的设计与实现

基于php的设计与实现

PHP 设计与实现的关键要素 环境搭建与框架选择 PHP开发需配置服务器环境(如Apache/Nginx)、PHP版本(建议7.4+)及数据库(MySQL/MariaDB)。主流框架包括Laravel…