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返回當前的數據,其他的均返回空
就到這兒,下期預告:堆棧。
閱讀更多 冰雪緣 的文章