本日,我们来看看splDoublylinkedList类。

一,增加节点

运行结果

splphp法式员必学教程神奇的PHP白SPL操作之PHP双向链表操作 Bootstrap

我们看到,节点名称是

[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返回当前的数据,其他的均返回空

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