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
php安全之直接用$获取值而不$_GET 字符转义
Jun 03 PHP
php根据分类合并数组的方法实例详解
Nov 06 PHP
ThinkPHP实现将SESSION存入MYSQL的方法
Jul 22 PHP
PHP页面跳转操作实例分析(header方法)
Sep 28 PHP
thinkPHP中验证码的简单实现方法
Dec 05 PHP
弹出模态框modal的实现方法及实例
Sep 19 PHP
PHP实现的最大正向匹配算法示例
Dec 19 PHP
php封装db类连接sqlite3数据库的方法实例
Dec 19 PHP
phpinfo的知识点总结
Oct 10 PHP
php查看一个变量的占用内存的实例代码
Mar 29 PHP
详解php反序列化
Jun 10 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
Yii框架使用魔术方法实现跨文件调用功能示例
2017/05/20 PHP
最新优化收藏到网摘代码(digg,diigo)
2007/02/07 Javascript
mapper--图片热点区域高亮组件官方站点
2007/12/22 Javascript
js中switch case循环实例代码
2013/12/30 Javascript
javascript中为某个元素指定事件的三种方式
2014/08/07 Javascript
JavaScript插件化开发教程 (四)
2015/01/27 Javascript
jquery插件autocomplete用法示例
2016/07/01 Javascript
javascript经典特效分享 手风琴、轮播图、图片滑动
2016/09/14 Javascript
JavaScript动态数量的文件上传控件
2016/11/18 Javascript
微信小程序 省市区选择器实例详解(附源码下载)
2017/01/05 Javascript
jQuery快速实现商品数量加减的方法
2017/02/06 Javascript
Vue实现动态显示textarea剩余字数
2017/05/22 Javascript
Angularjs的启动过程分析
2017/07/18 Javascript
利用js编写网页进度条效果
2017/10/08 Javascript
基于jquery.page.js实现分页效果
2018/01/01 jQuery
Jquery遍历筛选数组的几种方法和遍历解析json对象,Map()方法详解以及数组中查询某值是否存在
2019/01/18 jQuery
jQuery访问json文件中数据的方法示例
2019/01/28 jQuery
JavaScript函数定义方法实例详解
2019/03/05 Javascript
JavaScript刷新页面的几种方法总结
2019/03/28 Javascript
10款最好的Web开发的 Python 框架
2015/03/18 Python
python获得一个月有多少天的方法
2015/06/04 Python
python去除文件中重复的行实例
2018/06/29 Python
python  创建一个保留重复值的列表的补码
2018/10/15 Python
使用python分析统计自己微信朋友的信息
2019/07/19 Python
Python+OpenCV实现旋转文本校正方式
2020/01/09 Python
Pycharm配置lua编译环境过程图解
2020/11/28 Python
详解python3类型注释annotations实用案例
2021/01/20 Python
canvas因为图片资源不在同一域名下而导致的跨域污染画布的解决办法
2019/01/18 HTML / CSS
VisionPros美国站:加拿大在线隐形眼镜和眼镜零售商
2020/02/11 全球购物
触摸春天教学反思
2014/02/03 职场文书
我爱幼儿园演讲稿
2014/09/11 职场文书
对照四风自我剖析材料
2014/10/07 职场文书
音乐研修感悟
2015/11/18 职场文书
7个你应该知道的JS原生错误类型
2021/04/29 Javascript
python实现语音常用度量方法的代码详解
2021/05/25 Python
Python爬取某拍短视频
2021/06/11 Python