摘要:這兩個類都是繼承自,分別派生自的堆棧模式和隊(duì)列模式所以放在一起來介紹堆棧類摘要方法重寫了父類,固定為堆棧模式,然后此處只需要傳或者。
這兩個類都是繼承自SplDoublyLinkedList,分別派生自SplDoublyLinkedList的堆棧模式和隊(duì)列模式;所以放在一起來介紹;
堆棧SplStack# 類摘要 SplStack extends SplDoublyLinkedList implements Iterator , ArrayAccess , Countable { /* 方法 */ __construct(void) // 重寫了父類SplDoublyLinkedList,固定為堆棧模式,然后此處只需要傳IT_MODE_DELETE或者IT_MODE_KEEP。 void setIteratorMode(int $mode ) /* 繼承自SplDoublyLinkedList的方法 */ ... }
//把棧想象成一個顛倒的數(shù)組 $stack = new SplStack(); /** * 可見棧和雙鏈表的區(qū)別就是IteratorMode改變了而已,棧的IteratorMode只能為: * (1)SplDoublyLinkedList::IT_MODE_LIFO | SplDoublyLinkedList::IT_MODE_KEEP (默認(rèn)值,迭代后數(shù)據(jù)保存) * (2)SplDoublyLinkedList::IT_MODE_LIFO | SplDoublyLinkedList::IT_MODE_DELETE (迭代后數(shù)據(jù)刪除) */ $stack->setIteratorMode(SplDoublyLinkedList::IT_MODE_LIFO | SplDoublyLinkedList::IT_MODE_DELETE); $stack->push("a"); $stack->push("b"); $stack->push("c"); $stack->offsetSet(0, "first");//index 為0的是最后一個元素,后入后出 $stack->pop(); //出棧 foreach($stack as $item) { echo $item . PHP_EOL; // first a } print_R($stack); //測試IteratorMode隊(duì)列SplQueue
# 類摘要 SplQueue extends SplDoublyLinkedList implements Iterator , ArrayAccess , Countable { /* 方法 */ __construct ( void ) // 出隊(duì) mixed dequeue ( void ) // 入隊(duì) void enqueue ( mixed $value ) // 重寫了父類SplDoublyLinkedList,固定為堆棧模式,然后此處只需要傳IT_MODE_DELETE或者IT_MODE_KEEP。 void setIteratorMode ( int $mode ) //其他繼承的方法 }
$q = new SplQueue(); $q->setIteratorMode(SplQueue::IT_MODE_DELETE); //可以放任何數(shù)據(jù)類型到隊(duì)列里面 $q->enqueue("item1"); //每次放入都是只占一個隊(duì)列的位置 $q->enqueue(array("FooBar", "foo")); $q->enqueue(new stdClass()); $q->rewind(); while($q->valid()){ print_r($q->current()); echo " "; $q->next(); } // 出隊(duì),先入先出,因?yàn)殛?duì)列為空,所以此處報(bào)錯; $q->dequeue();
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/31536.html
摘要:堆就是為了實(shí)現(xiàn)優(yōu)先隊(duì)列而設(shè)計(jì)的一種數(shù)據(jù)結(jié)構(gòu),它是通過構(gòu)造二叉堆二叉樹的一種實(shí)現(xiàn)。根節(jié)點(diǎn)最大的堆叫做最大堆或大根堆,根節(jié)點(diǎn)最小的堆叫做最小堆或小根堆。二叉堆還常用于排序堆排序。 堆(Heap)就是為了實(shí)現(xiàn)優(yōu)先隊(duì)列而設(shè)計(jì)的一種數(shù)據(jù)結(jié)構(gòu),它是通過構(gòu)造二叉堆(二叉樹的一種)實(shí)現(xiàn)。根節(jié)點(diǎn)最大的堆叫做最大堆或大根堆,根節(jié)點(diǎn)最小的堆叫做最小堆或小根堆。二叉堆還常用于排序(堆排序)。 showImg(...
摘要:什么是是標(biāo)準(zhǔn)庫的縮寫。根據(jù)官方定義,它是是用于解決典型問題的一組接口與類的集合。而的對象則嚴(yán)格以堆棧的形式描述數(shù)據(jù),并提供對應(yīng)的方法。返回所有已注冊的函數(shù)。 什么是SPL SPL是Standard PHP Library(PHP標(biāo)準(zhǔn)庫)的縮寫。 根據(jù)官方定義,它是a collection of interfaces and classes that are meant to solve...
摘要:主要是處理數(shù)組相關(guān)的主要功能,與普通不同的是,它是固定長度的,且以數(shù)字為鍵名的數(shù)組,優(yōu)勢就是比普通的數(shù)組處理更快。類摘要方法導(dǎo)入數(shù)組,返回對象把對象數(shù)組導(dǎo)出為真正的數(shù)組由于是定長數(shù)組,所以超過定長就會拋出異常。 SplFixedArray主要是處理數(shù)組相關(guān)的主要功能,與普通php array不同的是,它是固定長度的,且以數(shù)字為鍵名的數(shù)組,優(yōu)勢就是比普通的數(shù)組處理更快。 類摘要 SplF...
閱讀 786·2021-11-09 09:47
閱讀 1577·2019-08-30 15:44
閱讀 1148·2019-08-26 13:46
閱讀 2111·2019-08-26 13:41
閱讀 1272·2019-08-26 13:32
閱讀 3779·2019-08-26 10:35
閱讀 3529·2019-08-23 17:16
閱讀 458·2019-08-23 17:07