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中使用Oracle数据库(1)
Oct 09 PHP
第九节--绑定
Nov 16 PHP
PHP 飞信好友免费短信API接口开源版
Jul 22 PHP
使用ThinkPHP自带的Http类下载远程图片到本地的实现代码
Aug 02 PHP
php不用正则验证真假身份证
Nov 06 PHP
PHP return语句另类用法不止是在函数中
Sep 17 PHP
php中HTTP_REFERER函数用法实例
Nov 21 PHP
php关联数组快速排序的方法
Apr 17 PHP
thinkphp跨库操作的简单代码实例
Sep 22 PHP
php利用云片网实现短信验证码功能的示例代码
Nov 18 PHP
bindParam和bindValue的区别以及在Yii2中的使用详解
Mar 12 PHP
PHP实现负载均衡session共享redis缓存操作示例
Aug 22 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
codeigniter框架批量插入数据
2014/01/09 PHP
浅析THINKPHP的addAll支持的最大数据量
2015/02/03 PHP
详解WordPress中用于更新和获取用户选项数据的PHP函数
2016/03/08 PHP
PHP多维数组元素操作类的方法
2016/11/14 PHP
PHP的mysqli_set_charset()函数讲解
2019/01/23 PHP
Javascript学习笔记 delete运算符
2011/09/13 Javascript
js两行代码按指定格式输出日期时间
2011/10/21 Javascript
jquery实现非叠加式的搜索框提示效果
2014/01/07 Javascript
Node.js中使用mongoskin操作mongoDB实例
2014/09/28 Javascript
jQuery的实例及必知重要的jQuery选择器详解
2016/05/20 Javascript
JavaScript实现页面无操作倒计时退出
2016/10/22 Javascript
javascript 利用arguments实现可变长参数
2016/11/21 Javascript
JavaScript中使用参数个数实现重载功能
2017/09/01 Javascript
微信小程序实现倒计时调用相机自动拍照功能
2018/06/10 Javascript
详解webpack之图片引入-增强的file-loader:url-loader
2018/10/08 Javascript
Vue侦测相关api的实现方法
2019/05/22 Javascript
mpvue微信小程序开发之实现一个弹幕评论
2019/11/24 Javascript
JS造成内存泄漏的几种情况实例分析
2020/03/02 Javascript
Python 字典dict使用介绍
2014/11/30 Python
python自动发邮件总结及实例说明【推荐】
2019/05/31 Python
Python字典对象实现原理详解
2019/07/01 Python
查看Python依赖包及其版本号信息的方法
2019/08/13 Python
python监控nginx端口和进程状态
2019/09/06 Python
Python搭建Keras CNN模型破解网站验证码的实现
2020/04/07 Python
python 轮询执行某函数的2种方式
2020/05/03 Python
秋季运动会通讯稿
2014/01/24 职场文书
大学生毕业鉴定
2014/01/31 职场文书
食品业务员岗位职责
2014/03/18 职场文书
房产转让协议书(2014版)
2014/09/30 职场文书
临时用工协议书范本
2014/10/29 职场文书
2014年党风建设工作总结
2014/11/19 职场文书
筑梦中国心得体会
2016/01/18 职场文书
详解Python生成器和基于生成器的协程
2021/06/03 Python
vite+vue3.0+ts+element-plus快速搭建项目的实现
2021/06/24 Vue.js
一文简单了解MySQL前缀索引
2022/04/03 MySQL
PostgreSQL逻辑复制解密原理解析
2022/09/23 PostgreSQL