用php实现一个单链表的方法

本文介绍了如何使用PHP实现单链表数据结构,包括节点类和链表类的定义,以及添加、删除、更新等基本操作。通过示例展示了链表的使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

单链表

单链表顾名思义就是一个链式数据结构,它有一个表头(Head),本身不存储数据, 只是用来指向第一个节点的指针, 每个节点有两个元素, 一个为data, 用来存储数据, 一个为next, 用来存储下一个节点的地址, 最后一个节点的next指向null, 如下图:

在这里插入图片描述

php实现

用php实现单外链表, 首先我们要定义一个节点类, 用来保存链表节点
再定义一个链表类, 操作节点元素, 代码如下:

节点类
/**
 * Class Node
 * 链表元素
 */
class Node {
   
	/**
	 * 存储链表元素数据
	 * @var string Node data
	 */
	public $data = '';
	
	/**
	 * 指向下一个元素的地址
	 * @var self next Node
	 */
	public $next = null;
	
	/**
	 * 构造方法, 自动插入数据
	 * @param $data
	 * @param null $next
	 */
	public function __construct($data, $next = null)
	{
   
		$this->data = $data;
		$this->next = $next;
	}
}

链表类

该链表实现了添加,删除,更新,头部插入,获取元素, 清空链表, 返回链表元素等等方法, 请自行查看代码

/**
 * Class SingleLinkedList
 * 单链表
 */
class SingleLinkedList {
   
	/**
	 * 头指针, 指向第一个元素, 本身变不存储数据
	 * @var Node head->next = First Node
	 */
	public $head;
	
	/**
	 * 链表长度
	 * @var int Linked list Length
	 */
	public $length = 0;
	
	/**
	 * 构造方法, 用来插入头指针
	 * SingleLinkedList constructor.
	 */
	public function __construct()
	{
   
		$this->head = new Node(null);
	}
	
	/**
	 * 插入数据, 返回$this可链式调用
	 * @param $data
	 * @return $this
	 */
	public function insert($data)
	{
   
		$current = $this->head;
		while ($current->next !== null) {
   
			$current = $current->next;
		}
		$current->next = new Node($data);
		$this->length ++;
		
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值