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数组
Oct 09 PHP
php 用sock技术发送邮件的函数
Jul 21 PHP
mysql 查询指定日期时间内sql语句实现原理与代码
Dec 16 PHP
如何使用FireFox插件FirePHP调试PHP
Jul 23 PHP
codeigniter中测试通过的分页类示例
Apr 17 PHP
CentOS 6.3下安装PHP xcache扩展模块笔记
Sep 10 PHP
Yii分页用法实例详解
Dec 04 PHP
分享PHP计算两个日期相差天数的代码
Dec 23 PHP
PHP 无限级分类
May 04 PHP
php5.x禁用eval的操作方法
Oct 19 PHP
php文件包含的几种方式总结
Sep 19 PHP
PHP SESSION跨页面传递失败解决方案
Dec 11 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
php随机取mysql记录方法小结
2014/12/27 PHP
Moment.js 不容错过的超棒Javascript日期处理类库
2012/04/15 Javascript
js闭包实例汇总
2014/11/09 Javascript
javascript使用正则表达式检测IP地址
2014/12/03 Javascript
jQuery入门介绍之基础知识
2015/01/13 Javascript
jQuery实现切换字体大小的方法
2015/03/10 Javascript
JS原型对象的创建方法详解
2016/06/16 Javascript
Javascript中函数名.length属性用法分析(对比arguments.length)
2016/09/16 Javascript
AngularJS路由切换实现方法分析
2017/03/17 Javascript
JS验证input输入框(字母,数字,符号,中文)
2017/03/23 Javascript
Angular2开发——组件规划篇
2017/03/28 Javascript
JavaScript瀑布流布局实现代码
2017/05/06 Javascript
详解vue slot插槽的使用方法
2017/06/13 Javascript
VUE引入第三方js包及调用方法讲解
2019/03/01 Javascript
React组件对子组件children进行加强的方法
2019/06/23 Javascript
微信小程序之左右布局的实现代码
2019/12/13 Javascript
JavaScript实现英语单词题库
2019/12/24 Javascript
python用reduce和map把字符串转为数字的方法
2016/12/19 Python
深入理解Python3中的http.client模块
2017/03/29 Python
详解Python3操作Mongodb简明易懂教程
2017/05/25 Python
django输出html内容的实例
2018/05/27 Python
python实现年会抽奖程序
2019/01/22 Python
django数据关系一对多、多对多模型、自关联的建立
2019/07/24 Python
python3环境搭建过程(利用Anaconda+pycharm)完整版
2020/08/19 Python
详解淘宝H5 sign加密算法
2020/08/25 HTML / CSS
e路東瀛(JAPANiCAN)香港:日本旅游、日本酒店和温泉旅馆预订
2018/11/21 全球购物
荷兰在线啤酒店:Beerwulf
2019/08/26 全球购物
车间副主任岗位职责
2013/12/24 职场文书
经销商培训邀请函
2014/01/21 职场文书
大学生优秀团员事迹材料
2014/01/30 职场文书
行政办公室岗位职责
2014/03/18 职场文书
《夹竹桃》教学反思
2014/04/20 职场文书
国贸专业求职信
2014/06/28 职场文书
生产操作工岗位职责
2014/09/16 职场文书
小学生班干部竞选稿
2015/11/20 职场文书
详解Python+OpenCV进行基础的图像操作
2022/02/15 Python