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分页函数
Oct 09 PHP
适用于php-5.2 的 php.ini 中文版[金步国翻译]
Apr 17 PHP
php设计模式 Singleton(单例模式)
Jun 26 PHP
PHP采集利器 Snoopy 试用心得
Jul 03 PHP
深入HTTP响应状态码速查表的详解
Jun 07 PHP
PHP中的函数-- foreach()的用法详解
Jun 24 PHP
PHP生成二维码的两个方法和实例
Jul 01 PHP
PHP连接access数据库
Mar 27 PHP
PHP面向对象程序设计实例分析
Jan 26 PHP
Zend Framework教程之连接数据库并执行增删查的方法(附demo源码下载)
Mar 21 PHP
PHP使用SOAP扩展实现WebService的方法
Apr 01 PHP
浅谈PHP值mysql操作类
Jun 29 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.ini中文版(1)
2006/10/09 PHP
php做下载文件的实现代码及文件名中乱码解决方法
2011/02/03 PHP
解析如何屏蔽php中的phpinfo()函数
2013/06/06 PHP
php检测数组长度函数sizeof与count用法
2014/11/17 PHP
php 读写json文件及修改json的方法
2018/03/07 PHP
php让json_encode不自动转义斜杠“/”的方法
2020/04/27 PHP
location.search在客户端获取Url参数的方法
2010/06/08 Javascript
JavaScript中继承的一些示例方法与属性参考
2010/08/07 Javascript
使用javascript实现页面定时跳转总结篇
2013/09/21 Javascript
jQuery操作select下拉框的text值和value值的方法
2014/05/31 Javascript
PhotoShop给图片自动添加边框及EXIF信息的JS脚本
2015/02/15 Javascript
移除AngularJS下URL中的#字符的方法
2015/06/19 Javascript
解析利用javascript如何判断一个数为素数
2016/12/08 Javascript
小程序云开发教程如何使用云函数实现点赞功能
2019/05/18 Javascript
ant design vue 表格table 默认勾选几项的操作
2020/10/31 Javascript
Python栈类实例分析
2015/06/15 Python
opencv python 2D直方图的示例代码
2018/07/20 Python
python直接获取API传递回来的参数方法
2018/12/17 Python
很酷的python表白工具 你喜欢我吗
2019/04/11 Python
Python中面向对象你应该知道的一下知识
2019/07/10 Python
利用python实现周期财务统计可视化
2019/08/25 Python
Python3监控windows,linux系统的CPU、硬盘、内存使用率和各个端口的开启情况详细代码实例
2020/03/18 Python
jupyter修改文件名方式(TensorFlow)
2020/04/21 Python
CSS3 选择器 属性选择器介绍
2012/01/21 HTML / CSS
Banggood官网:面向全球客户的综合商城
2017/04/19 全球购物
标准毕业生自荐信范文
2013/11/04 职场文书
医学生就业推荐表自我鉴定
2014/03/26 职场文书
《金孔雀轻轻跳》教学反思
2014/04/20 职场文书
酒店优秀员工事迹材料
2014/06/02 职场文书
商场收银员岗位职责
2015/04/07 职场文书
2015年学校办公室主任工作总结
2015/07/20 职场文书
2016年大学生就业指导课心得体会
2015/10/09 职场文书
2016年小学“感恩教师”主题队日活动总结
2016/04/01 职场文书
大学生暑期社会实践的个人总结!
2019/07/17 职场文书
文案策划岗位个人自我评价(范文)
2019/08/08 职场文书
使用python绘制横竖条形图
2022/04/21 Python