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动态创建Flash动画
Oct 09 PHP
php木马攻击防御之道
Mar 24 PHP
PHP中获取内网用户MAC地址(WINDOWS/linux)的实现代码
Aug 11 PHP
php使用strtotime和date函数判断日期是否有效代码分享
Dec 25 PHP
php创建sprite
Feb 11 PHP
分享一段php获取linux服务器状态的代码
May 27 PHP
PHP对文件进行加锁、解锁实例
Jan 23 PHP
PHP中array_keys和array_unique函数源码的分析
Feb 26 PHP
php处理单文件、多文件上传代码分享
Aug 24 PHP
thinkPHP中钩子的使用方法实例分析
Nov 16 PHP
PHP7 安装event扩展的实现方法
Oct 08 PHP
实例化php类时传参的方法分析
Jun 05 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获取后台Job管理的实现代码
2011/06/10 PHP
PHP字符串的递增和递减示例介绍
2014/02/11 PHP
php下Memcached入门实例解析
2015/01/05 PHP
PHP版单点登陆实现方案的实例
2016/11/17 PHP
php使用自定义函数实现汉字分割替换功能示例
2017/01/30 PHP
Ajax中的JSON格式与php传输过程全面解析
2017/11/14 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
2018/06/13 PHP
PHP去除空数组且数组键名重置的讲解
2019/02/28 PHP
js表数据排序 sort table data
2009/02/18 Javascript
JsRender实用入门教程
2014/10/31 Javascript
javascript实现获取服务器时间
2015/05/19 Javascript
vue.js初学入门教程(1)
2016/11/03 Javascript
前端页面文件拖拽上传模块js代码示例
2017/05/19 Javascript
JavaScript实现QQ聊天消息展示和评论提交功能
2017/05/22 Javascript
jquery dataTable 后台加载数据并分页实例代码
2017/06/07 jQuery
jQuery 操作 HTML 元素和属性的方法
2018/11/12 jQuery
微信小程序结合Storage实现搜索历史效果
2019/05/18 Javascript
vue中使用带隐藏文本信息的图片、图片水印的方法
2020/04/24 Javascript
vue实现从外部修改组件内部的变量的值
2020/07/30 Javascript
在vue中使用console.log无效的解决
2020/08/09 Javascript
springboot+vue+对接支付宝接口+二维码扫描支付功能(沙箱环境)
2020/10/15 Javascript
浅谈Python单向链表的实现
2015/12/24 Python
python 实现判断ip连通性的方法总结
2018/04/22 Python
numpy和pandas中数组的合并、拉直和重塑实例
2019/06/28 Python
Python手绘可视化工具cutecharts使用实例
2019/12/05 Python
使用IPython或Spyder将省略号表示的内容完整输出
2020/04/20 Python
python爬取youtube视频的示例代码
2021/03/03 Python
小程序canvas中文字设置居中锚点
2019/04/16 HTML / CSS
广州喜创信息技术有限公司JAVA软件工程师笔试题
2012/10/17 面试题
恒华伟业笔试面试题
2015/02/26 面试题
成人毕业生自我鉴定
2013/10/18 职场文书
早读迟到检讨书
2014/01/24 职场文书
详解Python函数print用法
2021/06/18 Python
新手入门Mysql--概念
2021/06/18 MySQL
详细介绍Next.js脚手架完整搭建封装
2022/04/26 Javascript
vue实现简易音乐播放器
2022/08/14 Vue.js