PHP实现双链表删除和插入节点的一个实例

本文介绍了一种PHP删除和插入双链表的方法,供大家参考:

摘要:uff1a

双链表也称为双链表。它是链表中的一个。每个数据节点都有两个指针,分别指向直接继承者和直接前体,因此,从双向链中的任何节点开始,都可以容易地访问其前体和后继节点,一般我们都构造双向循环链表。

实现代码:


< PHP
类结{
公开沪指美元;
下一个公共;
公开数据;
公共功能__construct($数据,沪指美元= null,合下= null){
此数据;
美元->进程prev美元;
$ >下一个$;
}
}
类doublelinklist {
私人美元;
公共功能__construct()
{
这个新节点()头
}
插入节点
公共功能insertlink($数据){
$ =新节点($,空,空);
接下来是;
$ = $;
当($ q){
如果($ >数据> $ data){
$ Q >有>下= P;
$ P -> prev = $ Q ->沪指;
$ =下一个$ q;
$ Q -> prev = P;
其他{ }
下一个$;
}
}
如果($ = NULL){
$;
$ P -> prev = r;
}
}
输出节点
公共功能printfromfront(){
下一步;
$;
当($ p){
$字符串=
$字符串;
下一个;
}
返回字符串。;
}
从输出节点的结尾处
公共功能printfromend(){
下一步;
$ = $;
当($ p){
$ R = P;
}
$;
当($ r){
$字符串=
$;
r = r ->沪指;
}
返回字符串。;
}
公共功能dellink($数据){
下一步;
如果(!$ P)
返回;
当($ p){
如果($ = <数据= $ data)
{
$ P ->下-> prev = $ P ->沪指;
$ P ->上->下= P - >下;
设置(P);
返回;
}
别的{
下一个;
}
}
如果($ = NULL)
没有值是{数据}节点;
}
}
$link =新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相关内容的更多读者感兴趣的读者可以看到特别站:PHP数据结构和算法教程

希望本文能对PHP程序设计有所帮助。