Heim  >  Artikel  >  Backend-Entwicklung  >  PHP SPL标准库之数据结构栈(SplStack)介绍_PHP教程

PHP SPL标准库之数据结构栈(SplStack)介绍_PHP教程

WBOY
WBOYOriginal
2016-07-13 09:53:37979Durchsuche

PHP SPL标准库之数据结构栈(SplStack)介绍

   这篇文章主要介绍了PHP SPL标准库之数据结构栈(SplStack)介绍,栈(Stack)是一种特殊的线性表,因为它只能在线性表的一端进行插入或删除元素(即进栈和出栈),需要的朋友可以参考下

  栈(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 = 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->pop(); //出栈

 

$stack->offsetSet(0, 'first');//index 为0的是最后一个元素

 

foreach($stack as $item) {

echo $item . PHP_EOL; // first a

}

 

print_R($stack); //测试IteratorMode

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1000109.htmlTechArticlePHP SPL标准库之数据结构栈(SplStack)介绍 这篇文章主要介绍了PHP SPL标准库之数据结构栈(SplStack)介绍,栈(Stack)是一种特殊的线性表,因为它只能...
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn