PHP单链表的实现代码


Posted in PHP onJuly 05, 2016

单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。

单链表简介

链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象) + 指针(指示后继元素存储位置),元素就是存储数据的存储单元,指针就是连接每个结点的地址数据。

关键代码如下所示:

<?php
/**
* 单链表
*/ 
class Demo
{
private $id;
public $name;
public $next;
public function __construct ($id = '', $name = '')
{
$this->id = $id;
$this->name = $name;
}
static public function show ($head)
{
$cur = $head;
while ($cur->next) {
echo $cur->next->id,'###',$cur->next->name,'<br />';
$cur = $cur->next;
}
echo '<hr />';
}
//尾插法
static public function push ($head, $node)
{
$cur = $head;
while (NULL != $cur->next) {
$cur = $cur->next;
}
$cur->next = $node;
return $head;
}
static public function insert($head, $node)
{
$cur = $head;
while (NULL != $cur->next) {
if ($cur->next->id > $node->id) {
break;
}
$cur = $cur->next;
}
$node->next = $cur->next;
$cur->next = $node;
return $head;
}
static public function edit($head, $node)
{
$cur = $head;
while (NULL != $cur->next) {
if ($cur->next->id == $node->id) {
break;
}
$cur = $cur->next;
}
$cur->next->name = $node->name;
return $head; 
}
static public function pop ($head, $node)
{
$cur = $head;
while (NULL != $cur->next) {
if ($cur->next == $node) {
break;
}
$cur = $cur->next;
}
$cur->next = $node->next;
return $head; 
}
}
$team = new Demo();
$node1 = new Demo(1, '唐三藏');
Demo::push($team, $node1);
$node1->name = '唐僧';
Demo::show($team);
// Demo::show($team);
$node2 = new Demo(2, '孙悟空');
Demo::insert($team, $node2);
// Demo::show($team);
$node3 = new Demo(5, '白龙马');
Demo::push($team, $node3);
// Demo::show($team);
$node4 = new Demo(3, '猪八戒');
Demo::insert($team, $node4);
// Demo::show($team);
$node5 = new Demo(4, '沙和尚');
Demo::insert($team, $node5);
// Demo::show($team);
$node4->name = '猪悟能';//php对象传引用,所以Demo::edit没有必要
// unset($node4);
// $node4 = new Demo(3, '猪悟能');
// Demo::edit($team, $node4);
Demo::pop($team, $node1);
Demo::show($team);

以上所述是小编给大家介绍的PHP单链表的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

PHP 相关文章推荐
十天学会php之第十天
Oct 09 PHP
PHP similar_text 字符串的相似性比较函数
May 26 PHP
php设计模式 Interpreter(解释器模式)
Jun 26 PHP
php数组函数序列之in_array() 查找数组值是否存在
Oct 29 PHP
邮箱正则表达式实现代码(针对php)
Jun 21 PHP
php实现统计邮件大小的方法
Aug 06 PHP
php 获取SWF动画截图示例代码
Feb 10 PHP
使用PHP实现下载CSS文件中的图片
Dec 06 PHP
详解WordPress中给链接添加查询字符串的方法
Dec 18 PHP
php读取出一个文件夹及其子文件夹下所有文件的方法示例
Jun 15 PHP
thinkPHP5框架闭包函数与子查询传参用法示例
Aug 02 PHP
PHP高并发和大流量解决方案整理
Dec 24 PHP
php 数组字符串搜索array_search技巧
Jul 05 #PHP
php单链表实现代码分享
Jul 04 #PHP
Yii2.0预定义的别名功能小结
Jul 04 #PHP
Yii控制器中操作视图js的方法
Jul 04 #PHP
深入分析PHP优化及注意事项
Jul 04 #PHP
yum命令安装php7和相关扩展
Jul 04 #PHP
PHP中Array相关函数简介
Jul 03 #PHP
You might like
php+mysql开源XNA 聚合程序发布 下载
2007/07/13 PHP
php开发环境配置记录
2011/01/14 PHP
phpmailer中文乱码问题的解决方法
2014/04/22 PHP
CodeIgniter框架过滤HTML危险代码
2014/06/12 PHP
正确的PHP匹配UTF-8中文的正则表达式
2015/05/13 PHP
双冒号 ::在PHP中的使用情况
2015/11/05 PHP
jQuery 操作下拉列表框实现代码
2010/02/22 Javascript
基于jquery的高性能td和input切换并可修改内容实现代码
2011/01/09 Javascript
精通Javascript系列之数值计算
2011/06/07 Javascript
js输入框邮箱自动提示功能代码实现
2013/12/10 Javascript
Javascript与jQuery方法的隐藏与显示
2015/01/19 Javascript
限制只能输入数字的实现代码
2016/05/16 Javascript
用js实现放大镜的效果的简单实例
2016/05/23 Javascript
使用jquery判断一个元素是否含有一个指定的类(class)实例
2017/02/12 Javascript
深入对Vue.js $watch方法的理解
2017/03/20 Javascript
详解vue axios中文文档
2017/09/12 Javascript
快速搭建React的环境步骤详解
2017/11/06 Javascript
Vue与Node.js通过socket.io通信的示例代码
2018/07/25 Javascript
快速了解Node中的Stream流是什么
2019/02/13 Javascript
如何基于JS截获动态代码
2019/12/25 Javascript
[00:15]TI9观赛名额抽取
2019/07/10 DOTA
Python中itertools模块用法详解
2014/09/25 Python
Python读写Json涉及到中文的处理方法
2016/09/12 Python
python 列表降维的实例讲解
2018/06/28 Python
python定时按日期备份MySQL数据并压缩
2019/04/19 Python
tensorflow求导和梯度计算实例
2020/01/23 Python
Python 实现 T00ls 自动签到脚本代码(邮件+钉钉通知)
2020/07/06 Python
vscode调试django项目的方法
2020/08/06 Python
pycharm配置安装autopep8自动规范代码的实现
2021/03/02 Python
HTML5中FileReader接口使用方法实例详解
2017/08/26 HTML / CSS
HTML5样式控制示例代码
2013/11/27 HTML / CSS
最新大学生自我评价
2013/09/24 职场文书
战友聚会主持词
2014/04/02 职场文书
2014年教务处工作总结
2014/12/03 职场文书
Python基础之Socket通信原理
2021/04/22 Python
python中%格式表达式实例用法
2021/06/18 Python