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
基于文本的访客签到簿
Oct 09 PHP
PHP无刷新上传文件实现代码
Sep 19 PHP
Thinkphp的volist标签嵌套循环使用教程
Jul 08 PHP
php+mysql数据库实现无限分类的方法
Dec 12 PHP
php支持中文字符串分割的函数
May 28 PHP
php版微信公众平台接口参数调试实现判断用户行为的方法
Sep 23 PHP
thinkPHP5框架设置404、403等http状态页面的方法
Jun 05 PHP
PHP实现数组根据某个单元字段排序操作示例
Aug 01 PHP
PHP设计模式之策略模式原理与用法实例分析
Apr 04 PHP
Laravel5.1 框架数据库操作DB运行原生SQL的方法分析
Jan 07 PHP
php+iframe 实现上传文件功能示例
Mar 04 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常用技巧总结(附函数代码)
2012/02/04 PHP
PHP将身份证正反面两张照片合成一张图片的代码
2017/04/08 PHP
浅析showModalDialog数据缓存问题(用禁止浏览器缓存解决)
2013/07/09 Javascript
限制textbox或textarea输入字符长度的JS代码
2013/10/16 Javascript
JavaScript子类用Object.getPrototypeOf去调用父类方法解析
2013/12/05 Javascript
jQuery点击自身以外地方关闭弹出层的简单实例
2013/12/24 Javascript
node.js中的favicon.ico请求问题处理
2014/12/15 Javascript
JS实现仿google、百度搜索框输入信息智能提示的实现方法
2015/04/20 Javascript
jQuery切换所有复选框选中状态的方法
2015/07/02 Javascript
Bootstrap CSS组件之大屏幕展播
2016/12/17 Javascript
JavaScript仿支付宝6位数字密码输入框
2016/12/29 Javascript
详解vue.js的事件处理器v-on:click
2017/06/27 Javascript
JS基于for语句编写的九九乘法表示例
2018/01/04 Javascript
python使用装饰器和线程限制函数执行时间的方法
2015/04/18 Python
Python求算数平方根和约数的方法汇总
2016/03/09 Python
基于python实现的抓取腾讯视频所有电影的爬虫
2016/04/22 Python
Python中的time模块与datetime模块用法总结
2016/06/30 Python
Python编程判断一个正整数是否为素数的方法
2017/04/14 Python
python中实现将多个print输出合成一个数组
2018/04/19 Python
python之信息加密题目详解
2019/06/26 Python
python 实现交换两个列表元素的位置示例
2019/06/26 Python
Django中的用户身份验证示例详解
2019/08/07 Python
python django 原生sql 获取数据的例子
2019/08/14 Python
Python上下文管理器类和上下文管理器装饰器contextmanager用法实例分析
2019/11/07 Python
python画蝴蝶曲线图的实例
2019/11/21 Python
Jupyter 无法下载文件夹如何实现曲线救国
2020/04/22 Python
利用python实现平稳时间序列的建模方式
2020/06/03 Python
详解Tensorflow不同版本要求与CUDA及CUDNN版本对应关系
2020/08/04 Python
实例讲解利用HTML5 Canvas API操作图形旋转的方法
2016/03/22 HTML / CSS
大专生工程监理求职信
2013/10/04 职场文书
会计电算化个人自我评价
2013/11/17 职场文书
生产车间班组长岗位职责
2014/01/06 职场文书
报到证办理个人委托书
2014/10/06 职场文书
详解thinkphp的Auth类认证
2021/05/28 PHP
python基础之类方法和静态方法
2021/10/24 Python
德劲DE1102数字调谐收音机机评
2022/04/07 无线电