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

        解析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號
        主站蜘蛛池模板: 亚洲精品中文字幕无码蜜桃 | 热久久国产欧美一区二区精品| 99久久人妻无码精品系列蜜桃| 久久精品国产第一区二区| 久热这里只精品99re8久| 日韩精品区一区二区三VR| 日韩精品一区二区三区影院| 欧美精品人爱c欧美精品| 国产午夜无码精品免费看| 亚洲精品国偷自产在线| 久久精品国产亚洲一区二区三区| 中国精品videossex中国高清| 99久久免费国产精品热| 精品一区二区三区东京热| 亚洲欧美激情精品一区二区| 四虎国产精品永久在线看| 精品久久久久国产免费| 国产成人99久久亚洲综合精品| 亚洲精品tv久久久久| 国产99视频精品免视看7| 欧美日韩在线精品一区二区三区激情综合| 久久精品国产影库免费看| 91精品最新国内在线播放| 精品无人区一区二区三区| 亚洲av日韩精品久久久久久a| 亚洲?V无码乱码国产精品| 久久九九久精品国产| 精品乱子伦一区二区三区高清免费播放 | 国内精品99亚洲免费高清| 成人午夜精品久久久久久久小说 | 久久精品国产第一区二区三区| 亚洲欧洲久久久精品| 亚洲国产精品尤物YW在线观看| 久久夜色精品国产亚洲av| 久久九九久精品国产免费直播| 国产精品永久久久久久久久久| 国产69精品久久久久99尤物| 9999国产精品欧美久久久久久| 99国产精品国产免费观看| 9re热国产这里只有精品| 亚洲视频精品在线|