您的位置 首页 php

程序员必学教程——神奇的PHP利剑:SPL操作之PHP双向链表操作

SPL::是PHP自带的库

当你苦苦的追求PHP数据结构、队列之类的第三方库时候,我会告诉你PHP官方也有这样的类库。

今天,我们来看看splDoublylinkedList类。

一,增加节点

运行结果:

我们看到,节点名称是

[ flags :SplDoublyLinkedList:private] => 0 

节点数据是

[dllist:SplDoublyLinkedList:private] => Array
(
) 

这就是双向数据链表的基本结构。

我们用push()方法增加一条节点:

运行结果:

那么,我们看看unshift()方法是怎么增加节点的?

运行结果:

我们看到:push方法增加的节点,会置于数据结构的后面(top、顶部)。unshift方法增加的节点会置于数据结构的前面(bottom、底部)。

二,删除节点

运行结果:

运行结果:

对比得出结论:

pop方法删除的是数据结构下面的节点(top),shift方法删除的是数据结构上面的节点(bottom)。

三,节点操作

运行结果:

我们猜到是

通过unshift增加的节点三 

结果恰好是

上下移动指针,下一个节点是?

我们猜测,是

通过unshift增加的节点二 

结果恰好是

这时候呢?向前移动一个指针。

这点不难,next,prev方法就是前后移动指针,current方法告诉我们的是当前节点。

注意:节点操作必须先要使用rewind方法标出bottom(上面的第一个)节点,切记切记。

否则返回什么?自己看。

我有个问题,这些方法都返回什么?

运行结果:

增加节点全部返回1。

运行结果:

删除节点,返回删除节点数据。

除了current返回当前的数据,其他的均返回空

就到这儿,下期预告:堆栈。

文章来源:智云一二三科技

文章标题:程序员必学教程——神奇的PHP利剑:SPL操作之PHP双向链表操作

文章地址:https://www.zhihuclub.com/153527.shtml

关于作者: 智云科技

热门文章

网站地图