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 编写大型网站问题集
May 07 PHP
Codeigniter生成Excel文档的简单方法
Jun 12 PHP
ThinkPHP CURD方法之field方法详解
Jun 18 PHP
两千行代码的PHP学习笔记汇总
Oct 05 PHP
php中删除数组的第一个元素和最后一个元素的函数
Mar 07 PHP
php实现的日历程序
Jun 18 PHP
用PHP代码在网页上生成图片
Jul 01 PHP
PHP中抽象类、接口的区别与选择分析
Mar 29 PHP
PHP面向对象继承用法详解(优化与减少代码重复)
Dec 02 PHP
PHP那些琐碎的知识点(整理)
May 20 PHP
laravel框架中视图的基本使用方法分析
Nov 23 PHP
PHP 对象继承原理与简单用法示例
Apr 21 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
文章推荐系统(二)
2006/10/09 PHP
PHP中用mysqli面向对象打开连接关闭mysql数据库的方法
2016/11/05 PHP
PHP流Streams、包装器wrapper概念与用法实例详解
2017/11/17 PHP
js前台分页显示后端JAVA数据响应
2013/03/18 Javascript
JavaScript获取和设置CheckBox状态的简单方法
2013/07/05 Javascript
Jquery.Form 异步提交表单的简单实例
2014/03/03 Javascript
js实现图片在未加载完成前显示加载中字样
2014/09/03 Javascript
JS 对象属性相关(检查属性、枚举属性等)
2015/04/05 Javascript
js实现顶部可折叠的菜单工具栏效果实例
2015/05/09 Javascript
jQuery中prepend()方法使用详解
2015/08/11 Javascript
localResizeIMG先压缩后使用ajax无刷新上传(移动端)
2015/08/11 Javascript
JS实现带提示的星级评分效果完整实例
2015/10/30 Javascript
FullCalendar日历插件应用之数据展现(一)
2015/12/23 Javascript
JavaScript实现垂直向上无缝滚动特效代码
2016/11/23 Javascript
微信小程序三级联动选择器使用方法
2020/05/19 Javascript
vue中post请求以a=a&amp;b=b 的格式写遇到的问题
2018/04/27 Javascript
webpack手动配置React开发环境的步骤
2018/07/02 Javascript
在webstorm开发微信小程序之使用阿里自定义字体图标的方法
2018/11/15 Javascript
详解如何实现Element树形控件Tree在懒加载模式下的动态更新
2019/04/25 Javascript
vue实现搜索功能
2019/05/28 Javascript
JS函数动态传递参数的方法分析【基于arguments对象】
2019/06/05 Javascript
详解vue-router 动态路由下子页面多页共活的解决方案
2019/12/22 Javascript
[01:14]2014DOTA2展望TI 剑指西雅图newbee战队专访
2014/06/30 DOTA
利用Python爬虫给孩子起个好名字
2017/02/14 Python
Python3 itchat实现微信定时发送群消息的实例代码
2019/07/12 Python
浅谈Django中view对数据库的调用方法
2019/07/18 Python
python 遍历pd.Series的index和value
2019/11/26 Python
Python使用enumerate获取迭代元素下标
2020/02/03 Python
Win10下安装并使用tensorflow-gpu1.8.0+python3.6全过程分析(显卡MX250+CUDA9.0+cudnn)
2020/02/17 Python
介绍Ibatis的核心类
2013/11/18 面试题
自考自我鉴定范文
2013/10/30 职场文书
架构师岗位职责
2013/11/18 职场文书
运动会解说词50字
2014/01/18 职场文书
公司表扬信格式
2015/05/04 职场文书
解决Golang中ResponseWriter的一个坑
2021/04/27 Golang
SQL 窗口函数实现高效分页查询的案例分析
2021/05/21 SQL Server