介绍
利用PHP怎么插入与删除双链表?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
<强>概述:强>
双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱,所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。一般我们都构造双向循环链表。
<强>实现代码:强>
& lt; ? php {class 节点 public 才能:美元; public 才能;下一美元; public 才能;$数据; public 才能;function  __construct(数据,prev=零美元,美元=null) { ,,,这美元→数据=https://www.yisu.com/zixun/美元数据; $ this -> prev=:美元; 下=$ $ this -> next; } } 类doubleLinkList { 私人美元头; 公共函数__construct () { $ this ->头=新节点(“头”,空,空); }//插入节点 公共函数insertLink(元数据){ $ p=新节点($ data,空,空); 美元q=$ this ->主管->下一个; $ r=$ this ->头; 而(q) { 如果(q ->数据>美元数据){ 美元的q ->: -> next=$ p; $ p -> prev=$ ->:; 下=$ $ p ->问; q -> prev=p美元; 其他}{ r=问美元;$ q=$ q -> next; } } 如果美元(q==null) { 未来=$ p $ r ->; $ p -> prev=$ r; } }//从头输出节点 公共函数printFromFront () { $ p=$ this ->主管-> next; 字符串美元=" "; 虽然($ p) { 弦弦。美元=$ ?”、“:””; 字符串。美元=$ p ->数据; $ p=$ p -> next; } echo $字符串。”
”; }//从尾输出节点 公共函数printFromEnd () { $ p=$ this ->主管-> next; $ r=$ this ->头; 虽然($ p) { $ r=$ p; $ p=$ p -> next; } 字符串美元=" "; 而($ r) { 弦弦。美元=$ ?”、“:””; 字符串。美元=$ r ->数据; $ r=$ r ->:; } echo $字符串。”
”; } 公共函数delLink(元数据){ $ p=$ this ->主管-> next; 如果(! $ p) 返回; 虽然($ p) { 如果美元($ p ->数据==数据) { $ p ->下一步-> prev=$ p ->:; $ p ->上一页下=$ p -> ->下一页; 设置($ p); 返回; } 其他{ $ p=$ p -> next; } } 如果($ p==null) 回应“没有值为{$ data}的节点”; } } $=new doubleLinkList链接(); $链接-> insertLink (1); $链接-> insertLink (2); $链接-> insertLink (3); $链接-> insertLink (4); $链接-> insertLink (5); $链接-> delLink (3); $链接-> printFromFront (); $链接-> printFromEnd (); $链接-> delLink (6);
<强>运行结果:强>
1, 2, 4, 5 5、4、2、1,头 没有值为6的节点
看完上述内容,你们掌握利用PHP怎么插入与删除双链表的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!