php中怎么实现数据结构的单向链表
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,本篇文章给大家分享的是有关php中怎么实现数据结构的单向链表,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。代码实现定义节点class N
千家信息网最后更新 2025年12月02日php中怎么实现数据结构的单向链表
本篇文章给大家分享的是有关php中怎么实现数据结构的单向链表,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
代码实现
定义节点
class Node{ public $data; /** * @var null | Node */ public $next; public function __construct($data) { $this->data = $data; $this->next = null; }}单链表实现
/** * Class SingleLinkList * 单链接的实现示例,实现简单的填加,插入,删除, 查询,长度,遍历这几个简单操作 */class SingleLinkList{ /** * 链表头结点,头节点必须存在, * @var Node */ public $header; private $size = 0; /** * 构造函数,默认填加一个哨兵节点,该节点元素为空 * SingleLinkList constructor. */ public function __construct() { $this->header = new Node(null); } /** * 在链表末尾添加节点 * @param Node $node * @return int */ public function addNode(Node $node) { $current = $this->header; while ($current->next != null) { $current = $current->next; } $current->next = $node; return ++$this->size; } /** * 在指定位置插入节点 * @param int $index 节点位置,从1开始计数 * @param Node $node * @return int * @throws Exception */ public function insertNodeByIndex($index, Node $node) { if ($index < 1 || $index > ($this->size + 1)) { throw new Exception(sprintf('你要插入的位置,超过了链表的长度 %d', $this->size)); } $current = $this->header; $tempIndex = 1; do { if ($index == $tempIndex++) { $node->next = $current->next; $current->next = $node; break; } } while ($current->next != null && ($current = $current->next)); return ++$this->size; } /** * 删除节点 * @param int $index 节点位置,从1开始计数 * @return int * @throws Exception */ public function deleteNodeByIndex($index) { if ($index < 1 || $index > ($this->size + 1)) { throw new Exception('你删除的节点不存在'); } $current = $this->header; $tempIndex = 1; do { if ($index == $tempIndex++) { $current->next = $current->next->next; break; } } while ($current->next != null && ($current = $current->next)); return --$this->size; } /** * 查询节点 * @param int $index 节点位置,从1开始计数 * @return Node|null * @throws Exception */ public function searchNodeByIndex($index) { if ($index < 1 || $index > ($this->size + 1)) { throw new Exception('你查询的节点不存在'); } $current = $this->header; $tempIndex = 1; do { if ($index == $tempIndex++) { return $current->next; } } while ($current->next != null && ($current = $current->next)); } /** * 获取节点长度 * @return int */ public function getLength() { return $this->size; } /** * 遍历列表 */ public function showNode() { $current = $this->header; $index = 1; while ($current->next != null) { $current = $current->next; echo 'index --- ' . $index++ . ' --- '; echo var_export($current->data); echo PHP_EOL; } }}示例
$link = new SingleLinkList();$link->addNode(new Node(1));$link->addNode(new Node(2));$link->insertNodeByIndex(3, new Node(3));$link->addNode(new Node(4));$link->addNode(new Node(5));echo $link->getLength(), PHP_EOL;$link->showNode();echo '-----------', PHP_EOL;var_dump($link->searchNodeByIndex(3));echo '-----------', PHP_EOL;$link->deleteNodeByIndex(3);$link->showNode();
以上就是php中怎么实现数据结构的单向链表,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。
节点
位置
长度
查询
单向
数据
数据结构
结构
更多
知识
示例
篇文章
实用
代码
元素
函数
哨兵
就是
工作会
文章
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
使用密钥管理服务服务器
网络安全入门教学推荐
软件开发工资有多少
软件开发项目中遇到的困难
杨浦区会计网络技术咨询报价
orcl创建数据库失败
手游坦克世界闪击战服务器
延吉德高软件开发公司
a)我国网络安全现状分析
信用基础数据库暂行管理办法
广州无源网络技术开发展示
如何用网络安全认证
网络安全法简历倒卖
1991年有无线网络技术吗
博兴供应链软件开发服务
瑞思软件开发
全栈开发和软件开发
软件开发 源代码归甲方
敏捷软件开发java
证监会诚信数据库
手机英雄联盟无法连接服务器
软件开发外包app报价
华为敏捷软件开发实施策略
网络安全宣传图片展前言
展商及观众数据库
服务器售后管理系统
高校网络安全制度建设
软件开发书 知乎
多台电脑连接打印服务器
vb 控制数据库 可编辑