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
IStream与TStream之间的相互转换
Aug 01 PHP
php 高效率写法 推荐
Feb 21 PHP
Mysql中分页查询的两个解决方法比较
May 02 PHP
Window下PHP三种运行方式图文详解
Jun 11 PHP
php随机显示图片的简单示例
Feb 15 PHP
PHP curl使用实例
Jul 02 PHP
php mongodb操作类 带几个简单的例子
Aug 25 PHP
PHP redis实现超迷你全文检索
Mar 04 PHP
Ubuntu 16.04下安装PHP 7过程详解
Mar 28 PHP
详解json在php中的应用
Sep 30 PHP
laravel-admin的图片删除实例
Sep 30 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
yii2学习教程之5种内置行为类详解
2017/08/03 PHP
用正则xmlHttp实现的偷(转)
2007/01/22 Javascript
jQuery dialog 异步调用ashx,webservice数据的代码
2010/08/03 Javascript
更优雅的事件触发兼容
2011/10/24 Javascript
js 代码优化点滴记录
2012/02/19 Javascript
CodeMirror2 IE7/IE8 下面未知运行时错误的解决方法
2012/03/29 Javascript
jQuery div层的放大与缩小简单实现代码
2013/03/28 Javascript
js创建表单元素并使用submit进行提交
2014/08/14 Javascript
node.js中的fs.readdir方法使用说明
2014/12/17 Javascript
node.js中的fs.chmodSync方法使用说明
2014/12/18 Javascript
Jquery 全选反选实例代码
2015/11/19 Javascript
jQuery实现选中弹出窗口选择框内容后赋值给文本框的方法
2015/11/23 Javascript
gameboy网页闯关游戏(riddle webgame)--仿微信聊天的前端页面设计和难点
2016/02/21 Javascript
JS生成和下载二维码的代码
2016/12/07 Javascript
JavaScript程序设计高级算法之动态规划实例分析
2017/11/24 Javascript
vue+webpack实现异步组件加载的方法
2018/02/03 Javascript
vue 实现类似淘宝星级评分的示例
2018/03/01 Javascript
基于Vue实现可以拖拽的树形表格实例详解
2018/10/18 Javascript
详解如何在Vue项目中导出Excel
2019/04/19 Javascript
如何实现小程序tab栏下划线动画效果
2019/05/18 Javascript
Nuxt.js实战和配置详解
2019/08/05 Javascript
python实现文本去重且不打乱原本顺序
2016/01/26 Python
python中文分词,使用结巴分词对python进行分词(实例讲解)
2017/11/14 Python
Python实现PS滤镜的旋转模糊功能示例
2018/01/20 Python
用python处理图片实现图像中的像素访问
2018/05/04 Python
python在TXT文件中按照某一字符串取出该字符串所在的行方法
2018/12/10 Python
python读取多层嵌套文件夹中的文件实例
2020/02/27 Python
利用python对mysql表做全局模糊搜索并分页实例
2020/07/12 Python
python自动化发送邮件实例讲解
2021/01/04 Python
屈臣氏马来西亚官网:Watsons马来西亚
2019/06/15 全球购物
Structs界面控制层技术
2013/10/11 面试题
大学生创业计划书的格式要求
2013/12/29 职场文书
财务检查整改报告
2014/11/06 职场文书
2016年优秀教师先进事迹材料
2016/02/26 职场文书
解决Mysql报错 Table 'mysql.user' doesn't exist
2022/05/06 MySQL
MySQL的prepare使用以及遇到的bug
2022/05/11 MySQL