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中使用mktime获取时间戳的一个黑色幽默分析
May 31 PHP
PHP gbk环境下json_dencode传送来的汉字
Nov 13 PHP
基于php伪静态的实现详细介绍
Apr 28 PHP
解析如何在PHP下载文件名中解决乱码的问题
Jun 20 PHP
19个超实用的PHP代码片段
Mar 14 PHP
PHP封装的一个支持HTML、JS、PHP重定向的多功能跳转函数
Jun 19 PHP
ThinkPHP实例化模型的四种方法概述
Aug 22 PHP
php定义一个参数带有默认值的函数实例分析
Mar 16 PHP
php操作MongoDB类实例
Jun 17 PHP
Joomla语言翻译类Jtext用法分析
May 05 PHP
php 函数使用可变数量的参数方法
May 02 PHP
Laravel使用scout集成elasticsearch做全文搜索的实现方法
Nov 30 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
PHP5 安装方法
2006/10/09 PHP
PHP中的Memcache详解
2014/04/05 PHP
php中使用sftp教程
2015/03/30 PHP
使用Git实现Laravel项目的自动化部署
2019/11/24 PHP
php 实现简单的登录功能示例【基于thinkPHP框架】
2019/12/02 PHP
javascript来定义类的规范小结
2010/11/19 Javascript
优化javascript的执行效率一些方法总结
2013/12/25 Javascript
jQuery.holdReady()使用方法
2014/05/20 Javascript
js取得html iframe中的元素和变量值
2014/06/30 Javascript
js阻止浏览器默认行为触发的通用方法(推荐)
2016/05/15 Javascript
jquery实现点击页面回到顶部
2016/11/23 Javascript
jquery仿苹果的时间/日期选择效果
2017/03/08 Javascript
如何解决vue与传统jquery插件冲突
2017/03/20 Javascript
简单实现js鼠标跟随效果
2020/08/02 Javascript
解决bootstrap模态框数据缓存的问题方法
2018/08/10 Javascript
详解微信小程序缓存--缓存时效性
2019/05/02 Javascript
Python的Flask框架中@app.route的用法教程
2015/03/31 Python
pygame加载中文名mp3文件出现error
2017/03/31 Python
Python使用pymysql从MySQL数据库中读出数据的方法
2018/07/25 Python
对Python模块导入时全局变量__all__的作用详解
2019/01/11 Python
Python使用ffmpy将amr格式的音频转化为mp3格式的例子
2019/08/08 Python
python爬取抖音视频的实例分析
2021/01/19 Python
html5文字阴影效果text-shadow使用示例
2013/07/25 HTML / CSS
canvas绘制视频封面的方法
2018/02/05 HTML / CSS
美国领先的男士和女士内衣购物网站:Freshpair
2019/02/25 全球购物
中国专业的音频分享平台:喜马拉雅
2019/05/24 全球购物
英国No.1体育用品零售商:SportsDirect.com
2019/10/16 全球购物
莫斯科购买书籍网站:Book24
2020/01/12 全球购物
亚马逊新加坡官方网站:Amazon.sg
2020/03/25 全球购物
培训楼经理岗位责任制
2014/02/10 职场文书
个人工作决心书
2015/09/22 职场文书
检举信的写法
2019/04/10 职场文书
TypeScript中条件类型精读与实践记录
2021/10/05 Javascript
SpringBoot连接MySQL获取数据写后端接口的操作方法
2021/11/02 MySQL
python+opencv实现目标跟踪过程
2022/06/21 Python
SQLyog的下载、安装、破解、配置教程(MySQL可视化工具安装)
2022/09/23 MySQL