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 相关文章推荐
自己动手做一个SQL解释器
Oct 09 PHP
用PHP和ACCESS写聊天室(八)
Oct 09 PHP
Ajax+PHP 边学边练之四 表单
Nov 27 PHP
PHP命名空间(Namespace)的使用详解
May 04 PHP
深入PHP与浏览器缓存的分析
Jun 03 PHP
destoon切换城市后实现logo旁边显示地区名称的方法
Aug 21 PHP
php中的字符编码转换函数用法示例
Oct 20 PHP
Linux下PHP加速器APC的安装与配置笔记
Oct 24 PHP
php实现通用的信用卡验证类
Mar 24 PHP
smarty高级特性之对象的使用方法
Dec 25 PHP
thinkphp关于简单的权限判定方法
Apr 03 PHP
浅谈如何提高PHP代码质量之端到端集成测试
May 28 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实现多文件上传的方法
2015/07/08 PHP
使用ucenter实现多站点同步登录的讲解
2019/03/21 PHP
PHP xpath提取网页数据内容代码解析
2020/07/16 PHP
javascript indexOf函数使用说明
2008/07/03 Javascript
jQuery Ajax请求状态管理器打包
2012/05/03 Javascript
谈谈我对JavaScript中typeof和instanceof的深入理解
2015/12/25 Javascript
JavaScript实现获取某个元素相邻兄弟节点的prev与next方法
2016/01/25 Javascript
HTML中setCapture、releaseCapture 使用方法浅析
2016/09/25 Javascript
如何处理JSON中的特殊字符
2016/11/30 Javascript
jQuery插件HighCharts实现的2D对数饼图效果示例【附demo源码下载】
2017/03/09 Javascript
JavaScript this绑定过程深入详解
2018/12/07 Javascript
Vue组件之高德地图地址选择功能的实例代码
2019/06/21 Javascript
vue基本使用--refs获取组件或元素的实例
2019/11/07 Javascript
python获取指定路径下所有指定后缀文件的方法
2015/05/26 Python
深入浅析python定时杀进程
2016/06/06 Python
Python中文分词实现方法(安装pymmseg)
2016/06/14 Python
Python 在字符串中加入变量的实例讲解
2018/05/02 Python
python selenium 弹出框处理的实现
2019/02/26 Python
Django中celery执行任务结果的保存方法
2019/07/12 Python
简单了解python PEP的一些知识
2019/07/13 Python
python 实现按对象传值
2019/12/26 Python
python base64库给用户名或密码加密的流程
2020/01/02 Python
关于h5中的fetch方法解读(小结)
2017/11/15 HTML / CSS
网站性能延迟加载图像的五种技巧(小结)
2020/08/13 HTML / CSS
美国南加州的原创极限运动潮牌:Vans(范斯)
2016/08/05 全球购物
西班牙床垫网上商店:Colchones.es
2018/05/06 全球购物
英国第一职业高尔夫商店:Clickgolf.co.uk
2020/11/18 全球购物
灵泰克Java笔试题
2016/01/09 面试题
UNIX特点都有哪些
2016/04/05 面试题
医学生个人求职信范文
2013/09/24 职场文书
大学在校生求职信范文
2013/11/21 职场文书
大学学生会竞选演讲稿
2014/04/25 职场文书
仓库保管员岗位职责
2015/02/09 职场文书
联谊会开场白
2015/06/01 职场文书
体育部部长竞选稿
2015/11/21 职场文书
MySQL的join buffer原理
2021/04/29 MySQL