日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php splqueue 5.5安装,解析PHP标准库SPL数据结构

發布時間:2023/12/9 php 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php splqueue 5.5安装,解析PHP标准库SPL数据结构 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

SPL提供了雙向鏈表、堆棧、隊列、堆、降序堆、升序堆、優先級隊列、定長數組、對象容器

SplQueue 隊列類

進出異端,先進先出

<?php $obj = new SplQueue();//插入一個節點到top位置$obj->enqueue(1);

$obj->enqueue(2);

$obj->enqueue(3);/**

SplQueue Object

(

[flags:SplDoublyLinkedList:private] => 4

[dllist:SplDoublyLinkedList:private] => Array

(

[0] => 1

[1] => 2

[2] => 3

)

)

*/$obj->offsetSet(0,'C');/**

SplQueue Object

(

[flags:SplDoublyLinkedList:private] => 4

[dllist:SplDoublyLinkedList:private] => Array

(

[0] => 'C'

[1] => 2

[2] => 3

)

)

*/$obj->rewind();//從隊列中返回并刪除bottom位置的元素$obj->dequeue();/**

'C'

SplQueue Object

(

[flags:SplDoublyLinkedList:private] => 4

[dllist:SplDoublyLinkedList:private] => Array

(

[0] => 2

[1] => 3

)

)

*/復制代碼

SplStack 堆棧類

單端進出時,后進先出,先進后出

$obj = new SplStack();/**

SplStack Object

(

[flags:SplDoublyLinkedList:private] => 6

[dllist:SplDoublyLinkedList:private] => Array

(

)

)

*///向堆棧放入一個節點到top位置$obj->push(1);

$obj->push(2);

$obj->push(3);/**

SplStack Object

(

[flags:SplDoublyLinkedList:private] => 6

[dllist:SplDoublyLinkedList:private] => Array

(

[0] => 1

[1] => 2

[2] => 3

)

)

*///堆棧的offset = 0 是Top所在的位置,offset = 1 是top節點靠近bottom位置的相鄰節點$obj->offsetSet(0,'C');/**

SplStack Object

(

[flags:SplDoublyLinkedList:private] => 6

[dllist:SplDoublyLinkedList:private] => Array

(

[0] => 1

[1] => 2

[2] => 'C'

)

)

*/$obj->offsetSet(1,'B');/**

SplStack Object

(

[flags:SplDoublyLinkedList:private] => 6

[dllist:SplDoublyLinkedList:private] => Array

(

[0] => 1

[1] => 'B'

[2] => 'C'

)

)

*///堆棧的rewind使指針指向top節點,而雙向鏈表的rewind指向bottom節點$obj->rewind();//堆棧的next是使指針向bottom方向相鄰的節點移動一位,而鏈表是向top方向移動$obj->next();//遍歷堆棧$obj->rewind();while($obj->valid()){ echo $obj->key().'=>'.$obj->current();

$obj->next();

}/**

2=>'C'

1=>'B'

0=>1

*///從堆棧中取出top位置的節點并刪除$obj->pop();復制代碼

SplDoublyLinkedList 雙向鏈表類

$obj = new SplDoublyLinkedList();//SplDoublyLinkedList Object ( [flags:SplDoublyLinkedList:private] => 0 [dllist:SplDoublyLinkedList:private] => Array ( ) )//把新的節點數據添加到鏈表的頂部Top$obj->push(1);

$obj->push(2);

$obj->push(3);//把新的節點數據添加到鏈表底部bottom$obj->unshift(4);/**

SplDoublyLinkedList Object

(

[flags:SplDoublyLinkedList:private] => 0

[dllist:SplDoublyLinkedList:private] => Array

(

[0] => 4

[1] => 1

[2] => 2

[3] => 3

)

)

*///在沒有調用rewind()方法之前輸出為nullecho 'current'.$obj->current();//輸出: null//把指針指向bottom節點$obj->rewind();//獲取當前指針指向的節點$obj->current();//輸出: 4//將執行挪到下一個$obj->next();

$obj->current();//輸出: 1$obj->prev();

$obj->current();//輸出: 4//越界了$obj->next();

$obj->next();

$obj->next();

$obj->next();

$obj->current();//輸出: null//判斷當前節點是否有效$obj->valid()//輸出: false$obj->prev();

$obj->valid()//輸出: true$obj->shift();//把top節點從鏈表中刪除并返回$obj->pop();//輸出 3//把bottom節點從鏈表中刪除并返回$obj->shift();//輸出 4//返回top節點$obj->top();//返回bottom節點$obj->bottom();復制代碼

感謝您的閱讀,如果對您有幫助,歡迎關注”CRMEB”。碼云上有我們開源的商城項目,知識付費項目,均是基于PHP+vue開發,學習研究歡迎使用,關注我們保持聯系!

想了解更多編程學習,敬請關注php培訓欄目!

總結

以上是生活随笔為你收集整理的php splqueue 5.5安装,解析PHP标准库SPL数据结构的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。