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的ob_start() 控制您的浏览器cache
Aug 03 PHP
利用Memcached在php下实现session机制 替换PHP的原生session支持
Aug 21 PHP
php设计模式 Facade(外观模式)
Jun 26 PHP
PHP优于Node.js的五大理由分享
Sep 15 PHP
phpmyadmin config.inc.php配置示例
Aug 27 PHP
PHP函数strip_tags的一个bug浅析
May 22 PHP
php获取百度收录、百度热词及百度快照的方法
Apr 02 PHP
PHP微信开发之微信消息自动回复下所遇到的坑
May 09 PHP
php实现微信公众平台发红包功能
Jun 14 PHP
PHP+ajax实现二级联动菜单功能示例
Aug 10 PHP
Laravel 6 将新增为指定队列任务设置中间件的功能
Aug 06 PHP
Yii框架常见缓存应用实例小结
Sep 09 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进行MySQL删除记录操作代码
2008/06/07 PHP
利用PHP实现短域名互转
2013/07/05 PHP
php数组保存文本与文本反编成数组实例
2014/11/13 PHP
PHP之正则表达式捕获组与非捕获组(详解)
2015/07/29 PHP
完美解决php 导出excle的.csv格式的数据时乱码问题
2017/02/18 PHP
分享20个提升网站界面体验的jQuery插件
2014/12/15 Javascript
jQuery实现仿Google首页拖动效果的方法
2015/05/04 Javascript
jquery实现滑屏大图定时收缩为小banner图片的广告代码
2015/09/02 Javascript
JavaScript中Window对象的属性及事件
2015/12/25 Javascript
详解jquery事件delegate()的使用方法
2016/01/25 Javascript
瀑布流的实现方式(原生js+jquery+css3)
2020/06/28 Javascript
探究Vue.js 2.0新增的虚拟DOM
2016/10/20 Javascript
基于bootstrap风格的弹框插件
2016/12/28 Javascript
Vue数据驱动模拟实现1
2017/01/11 Javascript
Vue项目中quill-editor带样式编辑器的使用方法
2017/08/08 Javascript
微信小程序中setInterval的使用方法
2017/09/29 Javascript
解决vue 按钮多次点击重复提交数据问题
2018/05/10 Javascript
详解微信小程序的 request 封装示例
2018/08/21 Javascript
vant(ZanUi)结合async-validator实现表单验证的方法
2018/12/06 Javascript
vue 子组件和父组件传值的示例
2020/09/11 Javascript
[04:22]DOTA2大事件之护国神翼
2020/08/14 DOTA
使用 Supervisor 监控 Python3 进程方式
2019/12/05 Python
详解Python中namedtuple的使用
2020/04/27 Python
浅析HTML5 Landmark
2020/09/11 HTML / CSS
草莓巧克力:Shari’s Berries
2017/02/07 全球购物
梅西酒窖:Macy’s Wine Cellar
2018/01/07 全球购物
台湾最大银发乐活百货:乐龄网
2018/05/21 全球购物
现代家居用品及礼品:LBC Modern
2018/06/24 全球购物
三星俄罗斯授权在线商店:Samsung俄罗斯
2019/09/28 全球购物
公司员工活动策划方案
2014/08/20 职场文书
认错检讨书
2014/10/02 职场文书
2015年乡镇纪委工作总结
2015/05/26 职场文书
2019客服个人年终工作总结范文
2019/07/08 职场文书
农村房屋租赁合同(范本)
2019/07/23 职场文书
SpringBoot中使用Redis作为全局锁示例过程
2022/03/24 Java/Android
Python面试不修改数组找出重复的数字
2022/05/20 Python