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 相关文章推荐
网络资源
Oct 09 PHP
对Session和Cookie的区分与解释
Mar 16 PHP
浅析php header 跳转
Jun 17 PHP
解决CodeIgniter伪静态失效
Jun 09 PHP
php多线程实现方法及用法实例详解
Oct 26 PHP
Yii开启片段缓存的方法
Mar 28 PHP
PHP生成图像验证码的方法小结(2种方法)
Jul 18 PHP
PHP加密解密类实例代码
Jul 20 PHP
php学习笔记之mb_strstr的基本使用
Feb 03 PHP
php原生数据库分页的代码实例
Feb 18 PHP
php命名空间设计思想、用法与缺点分析
Jul 17 PHP
php源码的使用方法讲解
Sep 26 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
Classes and Objects in PHP5-面向对象编程 [1]
2006/10/09 PHP
一个数据采集类
2007/02/14 PHP
PHP系统命令函数使用分析
2013/07/05 PHP
递归删除一个节点以及该节点下的所有节点示例
2014/03/19 PHP
php时间函数用法分析
2016/05/28 PHP
php实现统计二进制中1的个数算法示例
2018/01/23 PHP
laravel 查询数据库获取结果实现判断是否为空
2019/10/24 PHP
php自动加载代码实例详解
2021/02/26 PHP
javascript 表单的友好用户体现
2009/01/07 Javascript
Jquery乱码的一次解决过程 图解教程
2010/02/20 Javascript
jquery load()在firefox(火狐)下显示不正常的解决方法
2011/04/05 Javascript
nodejs事件的监听与触发的理解分析
2015/02/12 NodeJs
jQuery控制Div拖拽效果完整实例分析
2015/04/15 Javascript
jQuery时间插件jquery.clock.js用法实例(5个示例)
2016/01/14 Javascript
基于RequireJS和JQuery的模块化编程——常见问题全面解析
2016/04/14 Javascript
vue组件间通信子与父详解(二)
2017/11/07 Javascript
微信小程序三级联动选择器使用方法
2020/05/19 Javascript
Vue.use源码学习小结
2018/06/20 Javascript
Vue中mintui的field实现blur和focus事件的方法
2018/08/25 Javascript
js变量值传到php过程详解 将php解析成数据
2019/06/26 Javascript
python显示天气预报
2014/03/02 Python
Python中正则表达式的用法实例汇总
2014/08/18 Python
Python 进程之间共享数据(全局变量)的方法
2019/07/16 Python
python函数enumerate,operator和Counter使用技巧实例小结
2020/02/22 Python
Python经典五人分鱼实例讲解
2021/01/04 Python
python3中celery异步框架简单使用+守护进程方式启动
2021/01/20 Python
解决HTML5手机端页面缩放的问题
2017/10/27 HTML / CSS
销售自荐信
2013/10/22 职场文书
先进集体获奖感言
2014/02/13 职场文书
企业党员一句话承诺
2014/05/30 职场文书
秋季校运会广播稿100字
2014/09/18 职场文书
2014县委书记党的群众路线教育实践活动对照检查材料思想汇报
2014/09/22 职场文书
九华山导游词
2015/02/03 职场文书
2015年试用期自我评价范文
2015/03/10 职场文书
学习雷锋精神倡议书
2015/04/27 职场文书
Python合并多张图片成PDF
2021/06/09 Python