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在线生成ico文件的代码
Oct 09 PHP
PHP采集利器 Snoopy 试用心得
Jul 03 PHP
php var_export与var_dump 输出的不同
Aug 09 PHP
实例讲解PHP面向对象之多态
Aug 20 PHP
php格式化金额函数分享
Feb 02 PHP
php从字符串创建函数的方法
Mar 16 PHP
帝国cms常用标签汇总
Jul 06 PHP
PHP经典面试题之设计模式(经常遇到)
Oct 15 PHP
php魔术方法功能与用法实例分析
Oct 19 PHP
php正则修正符用法实例详解
Dec 29 PHP
Yii框架引入coreseek分页功能示例
Feb 08 PHP
关于laravel 子查询 &amp; join的使用
Oct 16 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
神族 PROTOSS 概述
2020/03/14 星际争霸
如何将数据从文本导入到mysql
2006/10/09 PHP
IIS6+PHP5+MySQL5+Zend Optimizer+phpMyAdmin安装配置图文教程 2009年
2009/06/08 PHP
php生成不重复随机数、数组的4种方法分享
2015/03/30 PHP
yii通过小物件生成view的方法
2016/10/08 PHP
Json对象替换字符串占位符实现代码
2010/11/17 Javascript
jQuery :nth-child前有无空格的区别分析
2011/07/11 Javascript
精心挑选的12款优秀的基于jQuery的手风琴效果插件和教程
2012/08/22 Javascript
jquerymobile局部渲染的各种刷新方法小结
2014/03/05 Javascript
详细介绍jQuery.outerWidth() 函数具体用法
2015/07/20 Javascript
JavaScript中的数组遍历forEach()与map()方法以及兼容写法介绍
2016/05/19 Javascript
JS封装的三级联动菜单(使用时只需要一行js代码)
2016/10/24 Javascript
Bootstrap按钮功能之查询按钮和重置按钮
2016/10/26 Javascript
用jquery的attr方法实现图片切换效果
2017/02/05 Javascript
Nodejs进阶:express+session实现简易登录身份认证
2017/04/24 NodeJs
浅谈Vue下使用百度地图的简易方法
2018/03/23 Javascript
layui获取多选框中的值方法
2018/08/15 Javascript
vue多级复杂列表展开/折叠及全选/分组全选实现
2018/11/05 Javascript
微信小程序template模版的使用方法
2019/04/13 Javascript
js实现磁性吸附的示例
2020/10/26 Javascript
[02:16]DOTA2英雄基础教程 干扰者
2014/01/15 DOTA
Python的Django框架中URLconf相关的一些技巧整理
2015/07/18 Python
Python随机读取文件实现实例
2017/05/25 Python
Python探索之静态方法和类方法的区别详解
2017/10/27 Python
Python random模块用法解析及简单示例
2017/12/18 Python
python中正则表达式的使用方法
2018/02/25 Python
windows下numpy下载与安装图文教程
2019/04/02 Python
python openpyxl使用方法详解
2019/07/18 Python
PyCharm刷新项目(文件)目录的实现
2020/02/14 Python
Pycharm连接远程服务器过程图解
2020/04/30 Python
python中的垃圾回收(GC)机制
2020/09/21 Python
Python使用Pygame绘制时钟
2020/11/29 Python
python基于win32api实现键盘输入
2020/12/09 Python
HTML5 Web 存储详解
2016/09/16 HTML / CSS
为中国消费者甄选天下优品:网易严选
2016/08/11 全球购物
委托书怎样写
2014/08/30 职场文书