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 相关文章推荐
解决dede生成静态页和动态页转换的一些问题,及火车采集入库生成动态的办法
Mar 29 PHP
PHP实现域名whois查询的代码(数据源万网、新网)
Feb 22 PHP
PHP的SQL注入实现(测试代码安全不错)
Feb 27 PHP
PHP中获取内网用户MAC地址(WINDOWS/linux)的实现代码
Aug 11 PHP
PHP的array_diff()函数在处理大数组时的效率问题
Nov 27 PHP
php使用Jpgraph绘制复杂X-Y坐标图的方法
Jun 10 PHP
thinkPHP实现将excel导入到数据库中的方法
Apr 22 PHP
PHP基于自定义函数生成笛卡尔积的方法示例
Sep 30 PHP
PHP双向链表定义与用法示例
Jan 31 PHP
PHP去除空数组且数组键名重置的讲解
Feb 28 PHP
thinkPHP5框架接口写法简单示例
Aug 05 PHP
Thinkphp5+Redis实现商品秒杀代码实例讲解
Dec 29 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
1982年日本摄影师镜头下的中国孩子 那无忧无虑的童年
2020/03/12 杂记
使用无限生命期Session的方法
2006/10/09 PHP
利用Memcached在php下实现session机制 替换PHP的原生session支持
2010/08/21 PHP
PHP实现的分解质因数操作示例
2018/08/01 PHP
JavaScript 动态将数字金额转化为中文大写金额
2009/05/14 Javascript
node在两个div之间移动,用ztree实现
2013/03/06 Javascript
当前页禁止复制粘贴截屏代码小集
2013/07/24 Javascript
基于javascript的JSON格式页面展示美化方法
2014/07/02 Javascript
js实现键盘上下左右键选择文字并显示在文本框的方法
2015/05/07 Javascript
jQuery实现的数值范围range2dslider选取插件特效多款代码分享
2015/08/27 Javascript
jQuery的实例及必知重要的jQuery选择器详解
2016/05/20 Javascript
JavaScript表单验证开发
2016/11/23 Javascript
jQuery插件之validation插件
2017/03/29 jQuery
微信小程序 下拉菜单的实现
2017/04/06 Javascript
Angular2使用jQuery的方法教程
2017/05/28 jQuery
js+html获取系统当前时间
2017/11/10 Javascript
webpack4打包vue前端多页面项目
2018/09/17 Javascript
npm 常用命令详解(小结)
2019/01/17 Javascript
javascript canvas封装动态时钟
2020/09/30 Javascript
js实现随机点名功能
2020/12/23 Javascript
[02:03]完美世界DOTA2联赛10月30日赛事集锦
2020/10/31 DOTA
python 正则表达式贪婪模式与非贪婪模式原理、用法实例分析
2019/10/14 Python
如何学习Python time模块
2020/06/03 Python
Python计算信息熵实例
2020/06/18 Python
深入浅析HTML5中的article和section的区别
2018/05/15 HTML / CSS
销售总监工作职责
2013/11/21 职场文书
《中国的气候》教学反思
2014/02/23 职场文书
机关党员2014全国两会学习心得体会
2014/03/10 职场文书
特教教师先进事迹
2014/05/21 职场文书
酒店管理求职信
2014/06/09 职场文书
迎新春趣味活动方案
2014/08/24 职场文书
暑假社会实践证明格式
2014/10/28 职场文书
幼儿园安全教育随笔
2015/08/14 职场文书
财务年终工作总结大全
2019/06/20 职场文书
为什么MySQL不建议使用SELECT *
2022/04/03 MySQL
python读取mat文件生成h5文件的实现
2022/07/15 Python