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