この記事では主にPHP SPL標準ライブラリのデータ構造スタック(SplStack)の紹介を紹介します スタック(Stack)は特殊な線形です。要素は線形リストの一端(つまりプッシュとポップ)でのみ挿入または削除できるため、必要な友達がそれを参照できます
スタックは線形リストの一方の端でのみ要素を挿入または削除(つまり、プッシュとポップ)できるため、特別な種類の線形リストです
SplStackはSplDoublyLinkedListを継承した実装スタックです。
授業概要は以下の通りです
簡単な使用方法は次のとおりです:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
//スタックを逆さまの配列として考えてください $stack = 新しい SplStack(); /** * スタックと二重リンク リストの違いは、スタックの 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->pop(); // スタックからポップします
$stack->offsetSet(0, 'first');//インデックス 0 のものが最後の要素です
foreach($stack as $item) { echo $item .PHP_EOL // 最初に }
print_R($stack); //イテレーターモードをテストします
|