PHP链表操作简单示例


Posted in PHP onOctober 15, 2016

本文实例讲述了PHP链表操作。分享给大家供大家参考,具体如下:

在php中运行数据结构,基本都是用数组模拟的,只是用一直思想而已。

今天遇到的这个问题是,两个链表进行合并。

PHP链表操作简单示例

链表合并效果图

问题描述:A链表是模版链表,B链表的长度不确定,A,B二个链表结合后形成C链表。

说一下编程思想:A链表是模版链表所以在运算完成了,长度了唯一不变的。而B链表的长度是不确定的。所以可以先对B链表进行判断,分了三步:

B链表是不是为空
B链表是不是比A链表短或者相等
B链表是不是比A链表长

编程就是要列出尽可能的可能性。抓住变量,由于题目要求,当A链表和B链表相等时,直接返回B链表,所以不用考虑这个问题。

$node = array(
"nameid"=>"",
"shoolid"=>" ",
"depid"=>" ",
"start"=>" ",
"end"=>" "
);
/*
现在上面数据,有的数据存在A链表里面,有的存在B链表里面,如果都没有,用A链表的数据节点来代替。
开始第一次完成的时候,想了一个很蛋痛的方式,还用到arra_diff()函数用这个链表作差。后来仔细思考了一下。
*/
//$data 表示B链表
//$time 表示A链表
//这里为了节约资源,没开第三条链表,而是在B链表中操作,为什么要选一条不确定长度的链表
//看完你就知道为什么了
if(empty($data)) //
{
    //申请节点
    $data = array();
    foreach($time as $value)
    {
      //将A链表的数据进行需求处理,组成我们需要的节点模式
      $array = array("nameid"=>$value["id"],"depid"=>$depid,"schoolid"=>$schoolid,"start"=>"","end"=>"");
      array_push($data,$array); //将新节点压进栈
    }
}
else if(count($data)<=count($time)) //进行长度对比
{
   for($i=0;$i<count($time);$i++) //for循环,不建议在for循环继续动态判断,我这里是偷懒了。
   {
     if(empty($data[$i]))
     {
      //如果数据节点空,则构建节点
      $array = array("nameid"=>$time[$i]["id"],"depid"=>$depid,"schoolid"=>$schoolid,"start"=>"","end"=>"");
      array_push($data,$array);
     }
   }
}

上面的算法就简单的实习了,将A链表的数据,和B的数据组合。

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP 错误之引号中使用变量
May 04 PHP
PHP中设置时区方法小结
Jun 03 PHP
PHP删除HTMl标签的三种解决方法
Jun 30 PHP
php实现水仙花数的4个示例分享
Apr 08 PHP
php+js iframe实现上传头像界面无跳转
Apr 29 PHP
ThinkPHP惯例配置文件详解
Jul 14 PHP
php使用MySQL保存session会话的方法
Jun 26 PHP
php检测文本的编码
Jul 26 PHP
php $_SESSION会员登录实例分享
Jan 19 PHP
PHP身份证校验码计算方法
Aug 10 PHP
Yii框架中使用PHPExcel的方法分析
Jul 25 PHP
laravel框架中路由设置,路由参数和路由命名实例分析
Nov 23 PHP
PHP在线打包下载功能示例
Oct 15 #PHP
PHP文件上传处理案例分析
Oct 15 #PHP
PHP小偷程序的设计与实现方法详解
Oct 15 #PHP
基于php判断客户端类型
Oct 14 #PHP
PHP实现登录搜狐广告获取广告联盟数据的方法【附demo源码】
Oct 14 #PHP
php生成与读取excel文件
Oct 14 #PHP
基于PHP实现用户注册登录功能
Oct 14 #PHP
You might like
smarty模板数学运算示例
2016/12/11 PHP
神奇的7个jQuery 3D插件整理
2011/01/06 Javascript
上传的js验证(图片/文件的扩展名)
2013/04/25 Javascript
解析Jquery的LigerUI如何实现文件上传
2013/07/09 Javascript
html dom节点操作(获取/修改/添加或删除)
2014/01/23 Javascript
JS的数组迭代方法
2015/02/05 Javascript
JS基于FileSystemObject创建一个指定路径的TXT文本文件
2015/08/05 Javascript
jQuery实现的经典竖向伸缩菜单效果代码
2015/09/24 Javascript
javascript给span标签赋值的方法
2015/11/26 Javascript
React实现双向绑定示例代码
2016/09/19 Javascript
easyui datebox 时间限制,datebox开始时间限制结束时间,datebox截止日期比起始日期大的实现代码
2017/01/12 Javascript
JavaScript设计模式之构造函数模式实例教程
2018/07/02 Javascript
vue 表单验证按钮事件交由父组件触发的方法
2018/12/17 Javascript
在小程序中推送模板消息的实现方法
2019/07/22 Javascript
微信小程序 确认框的实现(附代码)
2019/07/23 Javascript
node.js中path路径模块的使用方法实例分析
2020/02/13 Javascript
webpack+vue-cil 中proxyTable配置接口地址代理操作
2020/07/18 Javascript
跟老齐学Python之折腾一下目录
2014/10/24 Python
开始着手第一个Django项目
2015/07/15 Python
浅谈Python中chr、unichr、ord字符函数之间的对比
2016/06/16 Python
Python中的pygal安装和绘制直方图代码分享
2017/12/08 Python
Python XlsxWriter模块Chart类用法实例分析
2019/03/11 Python
Python叠加两幅栅格图像的实现方法
2019/07/05 Python
在Tensorflow中实现梯度下降法更新参数值
2020/01/23 Python
Python如何批量生成和调用变量
2020/11/21 Python
详解css3 flex弹性盒自动铺满写法
2020/09/17 HTML / CSS
英国时尚高尔夫服装购物网站:Trendy Golf
2020/01/10 全球购物
护士个人自我鉴定
2014/03/24 职场文书
美国留学经济担保书
2014/05/20 职场文书
教室标语大全
2014/06/21 职场文书
应届生面试求职信
2014/07/02 职场文书
2014年初三班主任工作总结
2014/12/05 职场文书
自我检讨报告
2015/01/28 职场文书
小学运动会通讯稿
2015/07/18 职场文书
深入解析NumPy中的Broadcasting广播机制
2021/05/30 Python
Elasticsearch 数据类型及管理
2022/04/19 Python