PHP SPL标准库之数据结构栈(SplStack)介绍2020-06-13 22:01:42

栈(Stack)是一种特殊的线性表,因为它只能在线性表的一端进行插入或删除元素(即进栈和出栈)

SplStack就是继承双链表(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->pop(); //出栈

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

foreach($stack as $item) {

echo $item . PHP_EOL; // first a

}

print_R($stack); //测试IteratorMode

特别申明:本文内容来源网络,版权归原作者所有,如有侵权请立即与我们联系(cy198701067573@163.com),我们将及时处理。

Tags 标签

php+spl+栈,PHP SPL标准库之数据结构栈(SplStack)介绍相关推荐

  1. php spl函数,PHP SPL标准库中的常用函数介绍

    这篇文章主要介绍了PHP SPL标准库中的常用函数介绍,本文着重讲解了spl_autoload_extensions().spl_autoload_register().spl_autoload()三 ...

  2. 在java的实现栈的插入数据_Java实现数据结构栈stack和队列Queue

    回顾JDK提供的集合类 容器(集合)框架如下: 集合类存放于java.util包中.集合类存放的都是对象的引用,而非对象本身. 集合类型主要有3种:set(集).list(列表)和map(映射). C ...

  3. java数据结栈空的条件表达式_数据结构——栈和队列例题

    1.若一个栈的输入序列为1,2,3,-,n,输出序列的第一个元素是i,则第j个输出元素是_____. 选项ABCD均错误,第j个输出元素应为i-j+1. 栈是一种先进后出的数据结构,也就是说如果入栈顺 ...

  4. python3内存分析_调试和分析 - tracemalloc —- 跟踪内存分配 - 《Python 3.7 标准库》 - 书栈网 · BookStack...

    tracemalloc -- 跟踪内存分配 3.4 新版功能. The tracemalloc module is a debug tool to trace memory blocks alloca ...

  5. Python全栈之路标准库系列之random模块

    This module implements pseudo-random number generators for various distributions. random.random() 生成 ...

  6. java stl stack_C++标准库之stack

    C++库以提供"模板"为主.所谓模板,是指不必预先制定类型的函数或类.我们可以借助STL(标准模板库 Standard Template Library, STL)提供的高效算法来 ...

  7. golang中文文档_Golang 标准库 限流器 time/rate 设计与实现

    限流器是后台服务中十分重要的组件,在实际的业务场景中使用居多,其设计在微服务.网关.和一些后台服务中会经常遇到.限流器的作用是用来限制其请求的速率,保护后台响应服务,以免服务过载导致服务不可用现象出现 ...

  8. GoLang之标准库strings包

    文章目录 GoLang之标准库strings包 1.函数介绍 2.EqualFold 3.TrimSpace 4.HasPrefix 5.HasSuffix 6.Index 7.LastIndex 8 ...

  9. PHP 设计模式 笔记与总结(3)SPL 标准库

    SPL 库的使用(PHP 标准库) 1. SplStack,SplQueue,SplHeap,SplFixedArray 等数据结构类 ① 栈(SplStack)(先进后出的数据结构) index.p ...

最新文章

  1. 我眼中的DevOps(转)
  2. SEO的操作流程梗概
  3. Why gdb crash if create too many threads ?
  4. 网络协议,我明明学过的呀?
  5. VS2010 教程:创建一个 WPF 应用程序 (第一节)
  6. S3C2440的SPI控制器
  7. 如何使用nginx配置SSL证书?
  8. 剑桥女博士创立情绪识别 AI 公司,帮助自闭症患者理解他人表情
  9. Video for linux 2 example (v4l2 demo)
  10. [洛谷P4838]P哥破解密码
  11. 牛拉法潮流计算 matlab,牛拉法潮流计算原理
  12. Duilib介绍-3
  13. PhotoShop CS6破解方法及文件下载
  14. git clone报错Could not resolve proxy : proxy-szn
  15. C#模拟点击网页按钮,提交数据有关问题
  16. 【源码】从Ansys导入mesh到MATLAB的小程序
  17. Android流媒体直播第三方库,Android——直播推流SDK
  18. 打开财务账期和物料账期code
  19. 深度学习入门 | Self-attentionRNNLSTM
  20. 【学习】各著名网站的使用语言情况

热门文章

  1. 哎,辣鸡代码书写准则
  2. 推荐一位互联网领域的达人,可以工作、生活、写书三不误!
  3. 给大家推荐一位我非常佩服的Python工程师 人生赢家
  4. ajax点评wnv冠军,对话wNv高层探知焦点 剑指世界冠军铸就王者路
  5. linux关闭开发者模式的命今,CentOS防火墙用命令行方式关闭的方式
  6. mysql4.1加密_Java版Mysql4.1之前的old_password加密算法
  7. 修改mysql数据库存放路径
  8. 深度学习:优化器工厂,各种优化器介绍,numpy实现深度学习(一)
  9. postgresql后期给开发建表的权限问题
  10. iScroll 5 API 中文版