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中的串行化变量和序列化对象
Sep 05 PHP
php 字符过滤类,用于过滤各类用户输入的数据
May 27 PHP
php中转义mysql语句的实现代码
Jun 24 PHP
php DOS攻击实现代码(附如何防范)
May 29 PHP
PHP自定义大小验证码的方法详解
Jun 07 PHP
生成随机字符串和验证码的类的PHP实例
Dec 24 PHP
php获取目标函数执行时间示例
Mar 04 PHP
destoon实现资讯信息前面调用它所属分类的方法
Jul 15 PHP
注意!PHP 7中不要做的10件事
Sep 18 PHP
PHP结合jquery ajax实现上传多张图片,并限制图片大小操作示例
Mar 01 PHP
PHP开启目录引索+fancyindex漂亮目录浏览带搜索功能
Sep 23 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
Feb 27 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 注释规范
2012/03/29 PHP
apache和php之间协同工作的配置经验分享
2013/04/08 PHP
PHP动态编译出现Cannot find autoconf的解决方法
2014/11/05 PHP
CodeIgniter配置之config.php用法实例分析
2016/01/19 PHP
PHP实现的简单适配器模式示例
2017/06/22 PHP
php微信公众号开发之音乐信息
2018/10/20 PHP
慎用 somefunction.prototype 分析
2009/06/02 Javascript
显示js对象所有属性和方法的函数
2009/10/16 Javascript
jquery异步循环获取功能实现代码
2010/09/19 Javascript
jQuery实现随意改变div任意属性的名称和值(部分原生js实现)
2013/05/28 Javascript
jquery 快速回到页首的方法
2013/12/05 Javascript
js特殊字符过滤的示例代码
2014/03/05 Javascript
jquery的ajax异步请求接收返回json数据实例
2014/06/16 Javascript
jQuery焦点图轮播特效代码分享(3款)
2015/09/05 Javascript
Javascript的比较汇总
2016/07/25 Javascript
JavaScript两个变量交换值的实现方法
2017/03/01 Javascript
jQuery模拟窗口抖动效果
2017/03/15 Javascript
TypeScript类型声明书写详解
2019/08/28 Javascript
JS字符串和数组如何实现相互转化
2020/07/02 Javascript
nodeJs项目在阿里云的简单部署
2020/11/27 NodeJs
Python 绘图和可视化详细介绍
2017/02/11 Python
python requests 使用快速入门
2017/08/31 Python
Python(Django)项目与Apache的管理交互的方法
2018/05/16 Python
解决python3 urllib 链接中有中文的问题
2018/07/16 Python
Python函数装饰器常见使用方法实例详解
2019/03/30 Python
Python 实现数据结构中的的栈队列
2019/05/16 Python
selenium跳过webdriver检测并模拟登录淘宝
2019/06/12 Python
如何不用安装python就能在.NET里调用Python库
2019/07/12 Python
HTML5边玩边学(3)像素和颜色
2010/09/21 HTML / CSS
写出程序把一个链表中的接点顺序倒排
2014/04/28 面试题
中间件分为哪几类
2012/03/14 面试题
咖啡店自主创业商业计划书
2014/01/22 职场文书
2014年五一活动策划方案
2014/03/15 职场文书
护理专科毕业自荐信范文
2014/04/21 职场文书
pytorch 权重weight 与 梯度grad 可视化操作
2021/06/05 Python
MySQL外键约束(Foreign Key)案例详解
2022/06/28 MySQL