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日期处理函数 整型日期格式
Jan 12 PHP
php提交表单时判断 if($_POST[submit])与 if(isset($_POST[submit])) 的区别
Feb 08 PHP
PHP 第二节 数据类型之字符串类型
Apr 28 PHP
利用php+mcDropdown实现文件路径可在下拉框选择
Aug 07 PHP
Nginx下配置codeigniter框架方法
Apr 07 PHP
7个鲜为人知却非常实用的PHP函数
Jul 01 PHP
日常整理PHP中简单的图形处理(经典)
Oct 26 PHP
php实现给二维数组中所有一维数组添加值的方法
Feb 04 PHP
php封装单文件上传到数据库(路径)
Oct 15 PHP
php模式设计之观察者模式应用实例分析
Sep 25 PHP
PHP如何获取Cookie并实现模拟登录
Jul 16 PHP
php中try catch捕获异常实例详解
Aug 06 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版
2006/10/09 PHP
php入门学习知识点三 PHP上传
2011/07/14 PHP
PHP中可以自动分割查询字符的Parse_str函数使用示例
2014/07/25 PHP
Yii使用技巧大汇总
2015/12/29 PHP
Laravel向公共模板赋值方法总结
2019/06/25 PHP
PHP 实现base64编码文件上传出现问题详解
2020/09/01 PHP
javascript之ESC(第二类混淆)
2007/05/06 Javascript
使用JQUERY Tabs插件宿主IFRAMES
2010/01/01 Javascript
js根据日期判断星座的示例代码
2014/01/23 Javascript
jQuery提示效果代码分享
2014/11/20 Javascript
JS动态创建DOM元素的方法
2015/06/09 Javascript
BootStrap中Tab页签切换实例代码
2016/05/30 Javascript
JS获取input file绝对路径的方法(推荐)
2016/08/02 Javascript
AngularJs IE Compatibility 兼容老版本IE
2016/09/01 Javascript
js代码实现下拉菜单【推荐】
2016/12/15 Javascript
jQuery Chosen通用初始化
2017/03/07 Javascript
JS实现仿微信支付弹窗功能
2018/06/25 Javascript
微信小程序methods中定义的方法互相调用的实例代码
2018/08/07 Javascript
select2 ajax 设置默认值,初始值的方法
2018/08/09 Javascript
通过Kettle自定义jar包供javascript使用
2020/01/29 Javascript
js里面的变量范围分享
2020/07/18 Javascript
vue 添加和编辑用同一个表单,el-form表单提交后清空表单数据操作
2020/08/03 Javascript
Openlayers实现地图的基本操作
2020/09/28 Javascript
angular共享依赖的解决方案分享
2020/10/15 Javascript
[02:28]DOTA2英雄基础教程 狼人
2013/12/23 DOTA
python实现朴素贝叶斯分类器
2018/03/28 Python
python高效过滤出文件夹下指定文件名结尾的文件实例
2018/10/21 Python
解决python tkinter界面卡死的问题
2019/07/17 Python
virtualenv介绍及简明教程
2020/06/23 Python
基于python模拟TCP3次握手连接及发送数据
2020/11/06 Python
Canvas图片分割效果的实现
2019/07/29 HTML / CSS
Nice Kicks网上商店:ShopNiceKicks.com
2018/12/25 全球购物
WINDOWS域的具体实现方式是什么
2014/02/20 面试题
保护环境建议书400字
2014/05/13 职场文书
代收款委托书范本
2014/10/01 职场文书
浅谈Python 中的复数问题
2021/05/19 Python