时间:2021-05-02
本文实例讲述了PHP链表操作。分享给大家供大家参考,具体如下:
在php中运行数据结构,基本都是用数组模拟的,只是用一直思想而已。
今天遇到的这个问题是,两个链表进行合并。
链表合并效果图
问题描述:A链表是模版链表,B链表的长度不确定,A,B二个链表结合后形成C链表。
说一下编程思想:A链表是模版链表所以在运算完成了,长度了唯一不变的。而B链表的长度是不确定的。所以可以先对B链表进行判断,分了三步:
B链表是不是为空
B链表是不是比A链表短或者相等
B链表是不是比A链表长
编程就是要列出尽可能的可能性。抓住变量,由于题目要求,当A链表和B链表相等时,直接返回B链表,所以不用考虑这个问题。
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 $node = array( "nameid"=>"", "shoolid"=>" ", "depid"=>" ", "start"=>" ", "end"=>" " ); //$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程序设计有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了php链表用法。分享给大家供大家参考。具体如下:这里简单介绍了php链表的基本用法,包括链表节点的创建、遍历、更新等操作。Data=$value;
本文实例讲述了PHP实现链表的定义与反转功能。分享给大家供大家参考,具体如下:PHP定义链表及添加、移除、遍历等操作:Data=$value;}publicfu
C语言数据结构之使用链表模拟栈的实例以下是“使用链表模拟栈”的简单示例:1.用C语言实现的版本#include#includetypedefchardataty
本文实例讲述了php数据结构之顺序链表与链式线性表。分享给大家供大家参考,具体如下:链表操作1、InitList(L):初始化链表2、DestroyList(L
本文实例讲述了PHP双向链表定义与用法。分享给大家供大家参考,具体如下:由于需要对一组数据多次进行移动操作,所以写个双向链表。但对php实在不熟悉,虽然测试各个