站長資訊網
        最全最豐富的資訊網站

        解析PHP標準庫SPL數據結構

        解析PHP標準庫SPL數據結構

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

        解析PHP標準庫SPL數據結構

        SplQueue 隊列類

        進出異端,先進先出

        解析PHP標準庫SPL數據結構
        <?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 堆棧類

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

        解析PHP標準庫SPL數據結構
        $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 雙向鏈表類

        解析PHP標準庫SPL數據結構
        $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開發,學習研究歡迎使用,關注我們保持聯系!

        想了解

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 国产精品igao视频网| 久久精品一区二区| 99久久人妻无码精品系列蜜桃 | 亚洲AV第一页国产精品| 99热这里只有精品国产66| 99在线精品视频观看免费| 亚洲精品成人片在线播放| 精品午夜国产人人福利| 色偷偷888欧美精品久久久| 国产精品99久久免费观看| 亚洲AV无码成人网站久久精品大 | 99在线精品视频在线观看| 亚洲国产精品无码久久久秋霞2 | 麻豆国产高清精品国在线| 91精品啪在线观看国产电影 | 亚洲精品国产va在线观看蜜芽| 国产精品va在线观看无码| 四虎影视国产精品永久在线| 99热这里只有精品在线| 国产精品无码日韩欧| 人妻VA精品VA欧美VA| 国产呦小j女精品视频| 国产成人无码精品一区在线观看| 久久国产精品-国产精品| 国产精品久久久久aaaa| 99热这里只有精品在线| 国产精品一二区| 国内精品在线视频| 国内精品久久九九国产精品| 国产精品久久影院| 国产精品视频网| 久久精品一区二区三区不卡| 欧美精品888| 99久久婷婷国产综合精品草原| 亚洲国产精品lv| MM1313亚洲精品无码| 国产精品久久久久乳精品爆| 国产精品视频不卡| 久久99国产精品成人欧美| 久久国产综合精品五月天| 欧美精品丝袜久久久中文字幕|