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 相关文章推荐
基于header的一些常用指令详解
Jun 06 PHP
深入理解PHP中的Session和Cookie
Jun 21 PHP
PHP两种去掉数组重复值的方法比较
Jun 19 PHP
ThinkPHP模板范围判断输出In标签与Range标签用法详解
Jun 30 PHP
PHP+MySQL删除操作实例
Jan 21 PHP
通过php修改xml文档内容的方法
Jan 23 PHP
php实现统计网站在线人数的方法
May 12 PHP
纯PHP代码实现支付宝批量付款
Dec 24 PHP
浅谈PHP eval()函数定义和用法
Jun 21 PHP
PHP mysqli_free_result()与mysqli_fetch_array()函数详解
Sep 21 PHP
彻底搞懂PHP 变量结构体
Oct 11 PHP
PHP基于mcript扩展实现对称加密功能示例
Feb 21 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和ACCESS写聊天室(六)
2006/10/09 PHP
比较全面的PHP数组的使用方法小结
2010/09/23 PHP
PHP文件操作实现代码分享
2011/09/01 PHP
PHP实现生成唯一编号(36进制的不重复编号)
2014/07/01 PHP
PHP Imagick完美实现图片裁切、生成缩略图、添加水印
2016/02/22 PHP
Mac版PhpStorm之XAMPP整合apache服务器配置的图文教程详解
2016/10/13 PHP
YII2自动登录Cookie总是失效的解决方法
2017/06/28 PHP
Js event事件在IE、FF兼容性问题
2011/01/01 Javascript
JavaScript高级程序设计阅读笔记(五) ECMAScript中的运算符(一)
2012/02/27 Javascript
jquery Moblie入门—hello world的示例代码学习
2013/01/08 Javascript
jQuery - css() 方法示例详解
2014/01/16 Javascript
一看就懂:jsonp详解
2015/06/01 Javascript
js实现城市级联菜单的2种方法
2017/06/23 Javascript
AngularJS 中的数据源的循环输出
2017/10/12 Javascript
Vue2.0 v-for filter列表过滤功能的实现
2018/09/07 Javascript
用node撸一个监测复联4开售短信提醒的实现代码
2019/04/10 Javascript
JavaScript常用进制转换及位运算实例解析
2020/10/14 Javascript
python中cPickle用法例子分享
2014/01/03 Python
python实现提取百度搜索结果的方法
2015/05/19 Python
详解python上传文件和字符到PHP服务器
2017/11/24 Python
python机器学习之神经网络(一)
2017/12/20 Python
Python3中在Anaconda环境下安装basemap包
2018/10/21 Python
pandas筛选某列出现编码错误的解决方法
2018/11/07 Python
Python多线程原理与用法实例剖析
2019/01/22 Python
宏碁西班牙官网:Acer西班牙
2021/01/08 全球购物
什么是托管函数?托管函数有什么用?
2014/06/15 面试题
公休请假条
2014/04/11 职场文书
国庆节演讲稿
2014/05/27 职场文书
学校火灾防控方案
2014/06/09 职场文书
垃圾桶标语
2014/06/24 职场文书
2015年信息技术教研组工作总结
2015/07/22 职场文书
教师节主题班会教案
2015/08/17 职场文书
高中班主任工作总结(范文)
2019/08/20 职场文书
十一月早安语录:把心放轻,人生就是一朵自在的云
2019/11/04 职场文书
SQLServer之常用函数总结详解
2021/08/30 SQL Server
关于Mybatis中SQL节点的深入解析
2022/03/19 Java/Android