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 相关文章推荐
怎么使 Mysql 数据同步
Oct 09 PHP
PHP 选项及相关信息函数库
Dec 04 PHP
PHP+MYSQL开发工具及资源收藏
Jan 02 PHP
php 防止单引号,双引号在接受页面转义
Jul 10 PHP
通达OA公共代码 php常用检测函数
Dec 14 PHP
PHP中几个可以提高运行效率的代码写法、技巧分享
Aug 21 PHP
PHP会话处理的10个函数
Aug 11 PHP
php使用Header函数,PHP_AUTH_PW和PHP_AUTH_USER做用户验证
May 04 PHP
浅析PHP数据导出知识点
Feb 17 PHP
基于swoole实现多人聊天室
Jun 14 PHP
解决thinkphp5未定义变量会抛出异常,页面错误,请稍后再试的问题
Oct 16 PHP
PHP code 验证码生成类定义和简单使用示例
May 27 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
PHPExcel读取Excel文件的实现代码
2011/12/06 PHP
PHP使用FFmpeg获取视频播放总时长与码率等信息
2016/09/13 PHP
PHP实现链式操作的三种方法详解
2017/11/16 PHP
浅谈php://filter的妙用
2019/03/05 PHP
PHP正则之正向预查与反向预查讲解与实例
2020/04/06 PHP
JS对URL字符串进行编码/解码分析
2008/10/25 Javascript
JQuery 返回布尔值Is()条件判断方法代码
2012/05/14 Javascript
一行代码告别document.getElementById
2012/06/01 Javascript
js动态设置div的值下例子
2013/10/29 Javascript
jquery实现侧边弹出的垂直导航
2014/12/09 Javascript
Javascript中的arguments与重载介绍
2015/03/15 Javascript
JQuery日期插件datepicker的使用方法
2016/03/03 Javascript
详解Angularjs中的依赖注入
2016/03/11 Javascript
JS函数arguments数组获得实际传参数个数的实现方法
2016/05/28 Javascript
基于rem的移动端响应式适配方案(详解)
2017/07/07 Javascript
vue-cli脚手架-bulid下的配置文件
2018/03/27 Javascript
vue引用外部JS的两种种方法
2020/01/28 Javascript
vue 使用微信jssdk,调用微信相册上传图片功能
2020/11/13 Javascript
实践Python的爬虫框架Scrapy来抓取豆瓣电影TOP250
2016/01/20 Python
解决Python出现_warn_unsafe_extraction问题的方法
2016/03/24 Python
理解Python中的绝对路径和相对路径
2017/08/30 Python
详解Python if-elif-else知识点
2018/06/11 Python
Python3实现计算两个数组的交集算法示例
2019/04/03 Python
python中的TCP(传输控制协议)用法实例分析
2019/11/15 Python
解析python 中/ 和 % 和 //(地板除)
2020/06/28 Python
Python logging日志库空间不足问题解决
2020/09/14 Python
python opencv图像处理(素描、怀旧、光照、流年、滤镜 原理及实现)
2020/12/10 Python
abstract class和interface有什么区别?
2012/01/03 面试题
应征英语教师求职信
2013/11/27 职场文书
生物制药自我鉴定
2014/01/25 职场文书
生物制药专业自我鉴定
2014/02/19 职场文书
《小池塘》教学反思
2014/02/28 职场文书
通信工程专业求职信
2014/06/04 职场文书
个人工作作风整改措施思想汇报
2014/10/13 职场文书
离婚协议书范文
2015/01/26 职场文书
JavaScript分页组件使用方法详解
2021/07/26 Javascript