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
用文本文件实现的动态实时发布新闻的程序
Oct 09 PHP
php中日期加减法运算实现代码
Dec 08 PHP
PHP反射类ReflectionClass和ReflectionObject的使用方法
Nov 13 PHP
PHP变量的定义、可变变量、变量引用、销毁方法
Dec 20 PHP
php实现分页工具类分享
Jan 09 PHP
CodeIgniter使用smtp服务发送html邮件的方法
Jun 10 PHP
php使用Imagick生成图片的方法
Jul 31 PHP
详解WordPress中添加和执行动作的函数使用方法
Dec 29 PHP
PHP数学运算与数据处理实例分析
Apr 01 PHP
php多线程并发实现方法
Sep 30 PHP
PHP编程快速实现数组去重的方法详解
Jul 22 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
Win2003服务器安全加固设置--进一步提高服务器安全性
2007/05/23 PHP
介绍一些PHP判断变量的函数
2012/04/24 PHP
thinkPHP线上自动加载异常与修复方法实例分析
2016/12/01 PHP
YII2框架中actions的作用与使用方法示例
2020/03/13 PHP
jQuery的实现原理的模拟代码 -2 数据部分
2010/08/01 Javascript
JavaScript获取路径设计源码
2014/05/22 Javascript
一个可以增加和删除行的table并可编辑表格中内容
2014/06/16 Javascript
javascript实现在指定元素中垂直水平居中
2015/09/13 Javascript
JavaScript 2048 游戏实例代码(简单易懂)
2016/03/25 Javascript
谈一谈jQuery核心架构设计
2016/03/28 Javascript
JSON 必知必会 观后记
2016/10/27 Javascript
JS区分Object与Aarry的六种方法总结
2017/02/27 Javascript
countup.js实现数字动态叠加效果
2019/10/17 Javascript
Vue实现手机计算器
2020/08/17 Javascript
[00:38]TI珍贵瞬间系列(二):笑
2020/08/26 DOTA
Python实现字典的key和values的交换
2015/08/04 Python
HTML中使用python屏蔽一些基本功能的方法
2017/07/07 Python
Python中序列的修改、散列与切片详解
2017/08/27 Python
Python-OpenCV基本操作方法详解
2018/04/02 Python
Python 继承,重写,super()调用父类方法操作示例
2019/09/29 Python
Python中的引用和拷贝实例解析
2019/11/14 Python
python 通过视频url获取视频的宽高方式
2019/12/10 Python
python实现俄罗斯方块游戏(改进版)
2020/03/13 Python
如何基于Python实现word文档重新排版
2020/09/29 Python
HTML5 Canvas中绘制椭圆的4种方法
2015/04/24 HTML / CSS
菲律宾领先的在线时尚商店:Zalora菲律宾
2018/02/08 全球购物
Ever New美国:澳大利亚领先的女装时尚品牌
2019/11/28 全球购物
物业管理大学生个人的自我评价
2013/10/10 职场文书
小学开学寄语
2014/01/19 职场文书
医药销售求职信范文
2014/02/01 职场文书
如何写好建议书
2014/03/13 职场文书
GMP办公室主任岗位职责
2014/03/14 职场文书
售后服务承诺书
2014/03/26 职场文书
小学教师见习总结
2015/06/23 职场文书
2015年幼儿园班主任个人工作总结
2015/10/22 职场文书
Redis集群的关闭与重启操作
2021/07/07 Redis