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 相关文章推荐
安装APACHE
Jan 15 PHP
php判断页面是否是微信打开的示例(微信打开网页)
Apr 25 PHP
PHP实现的简单网络硬盘
Jul 29 PHP
PHP的Yii框架的基本使用示例
Aug 21 PHP
php数据访问之增删改查操作
May 09 PHP
Zend Framework入门教程之Zend_Config组件用法详解
Dec 09 PHP
利用PHP实现一个简单的用户登记表示例
Apr 25 PHP
thinkPHP5实现的查询数据库并返回json数据实例
Oct 23 PHP
PHP开发实现微信退款功能示例
Nov 25 PHP
php实现websocket实时消息推送
Mar 30 PHP
php-fpm中max_children的配置
Mar 15 PHP
php 下 html5 XHR2 + FormData + File API 上传文件操作实例分析
Feb 28 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 日,周,月点击排行统计
2012/01/11 PHP
linux使用crontab实现PHP执行计划定时任务
2014/05/10 PHP
使用array_map简单搞定PHP删除文件、删除目录
2014/10/29 PHP
php源码分析之DZX1.5随机数函数random用法
2015/06/17 PHP
jQuery向下滚动即时加载内容实现的瀑布流效果
2016/01/07 PHP
PHP互换两个变量值的方法(不用第三变量)
2016/11/14 PHP
Yii2框架配置文件(Application属性)与调试技巧实例分析
2019/05/27 PHP
jQuery对象初始化的传参方式
2015/02/26 Javascript
JavaScript中常用的六种互动方法示例
2015/03/13 Javascript
基于javascript实现动态显示当前系统时间
2016/01/28 Javascript
原生JS实现层叠轮播图
2017/05/17 Javascript
Node.js 8 中的重要新特性
2017/06/28 Javascript
基于Vue实现页面切换左右滑动效果
2020/06/29 Javascript
vue项目实战总结篇
2018/02/11 Javascript
基于vue.js中事件修饰符.self的用法(详解)
2018/02/23 Javascript
webpack4打包vue前端多页面项目
2018/09/17 Javascript
angular中两种表单的区别(响应式和模板驱动表单)
2018/12/06 Javascript
小程序实现短信登录倒计时
2019/07/12 Javascript
微信小程序的授权实现过程解析
2019/08/02 Javascript
js实现div色块拖动录制
2020/01/16 Javascript
JS面向对象编程基础篇(三) 继承操作实例详解
2020/03/03 Javascript
nestjs返回给前端数据格式的封装实现
2021/02/22 Javascript
举例讲解Python的Tornado框架实现数据可视化的教程
2015/05/02 Python
Django admin实现图书管理系统菜鸟级教程完整实例
2017/12/12 Python
python3实现跳一跳点击跳跃
2018/01/08 Python
python提取图像的名字*.jpg到txt文本的方法
2018/05/10 Python
python 实现绘制整齐的表格
2019/11/18 Python
Python的缺点和劣势分析
2019/11/19 Python
html5构建触屏网站之网站尺寸探讨
2013/01/07 HTML / CSS
课改先进个人汇报材料
2014/01/26 职场文书
中秋节活动总结
2014/08/29 职场文书
2014年团员学习十八大思想汇报
2014/09/13 职场文书
扶贫办主任查摆“四风”问题个人对照检查材料思想汇报
2014/10/02 职场文书
员工手册董事长致辞
2015/07/29 职场文书
优质服务心得体会(共4篇)
2016/01/22 职场文书
2019关于垃圾分类处理的调查报告
2019/12/26 职场文书