[PHP] 数据结构-链表创建-插入-删除-查找的PHP实现
链表获取元素
1.声明结点p指向链表第一个结点,j初始化1开始
2.j<i,p指向下一结点,因为此时p是指向的p的next,因此不需要等于
3.如果到末尾了,p还为null,就是没有查找到
插入元素
1.插入元素和查找类似,找到位置后
2.生成新的结点s, s->next=p->next p->next=s;
删除元素
1.删除元素,找到位置后
2.绕过一下,q=p->next p->next=q->next;
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 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | <?php class Node{ public $data ; public $next ; } //创建一个链表 $linkList = new Node(); $linkList ->next=null; $temp = $linkList ; for ( $i =1; $i <=10; $i ++){ $node = new Node(); $node ->data= "aaa{$i}" ; $node ->next=null; $temp ->next= $node ; $temp = $node ; } //获取元素 function getEle( $linkList , $i ,& $e ){ $p = $linkList ->next; //寻找结点标准语句 $j =1; while ( $p && $j < $i ){ $p = $p ->next; ++ $j ; } if (! $p || $j > $i ){ return false; } $e = $p ->data; return true; } //插入元素 function listInsert(& $linkList , $i , $e ){ $p = $linkList ; $j =1; while ( $p && $j < $i ){ $p = $p ->next; ++ $j ; } if (! $p || $j > $i ){ return false; } $s = new Node(); $s ->data= $e ; //插入元素标准语句 $s ->next= $p ->next; $p ->next= $s ; return true; } //删除元素 function listDelete(& $linkList , $i ,& $e ){ $p = $linkList ; $j =1; //注意这里的判断$p->next为真,主要是后面要把$p->next指向$p->next->next while ( $p ->next && $j < $i ){ $p = $p ->next; ++ $j ; } if (! $p ->next || $j > $i ){ return false; } $q = $p ->next; //这个才是当前元素 $e = $q ->data; $p ->next= $q ->next; return true; } $e = "" ; //获取元素 getEle( $linkList ,5, $e ); var_dump( $e ); //插入元素 listInsert( $linkList ,5, "taoshihan" ); //删除元素 listDelete( $linkList ,1, $e ); var_dump( $e ); var_dump( $linkList ); |
十年开发经验程序员,离职全心创业中,历时三年开发出的产品《唯一客服系统》
一款基于Golang+Vue开发的在线客服系统,软件著作权编号:2021SR1462600。一套可私有化部署的网站在线客服系统,编译后的二进制文件可直接使用无需搭开发环境,下载zip解压即可,仅依赖MySQL数据库,是一个开箱即用的全渠道在线客服系统,致力于帮助广大开发者/公司快速部署整合私有化客服功能。
开源地址:唯一客服(开源学习版)
官网地址:唯一客服官网
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析