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


Posted in PHP onMay 12, 2015

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

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

SplStack就是继承双链表(SplDoublyLinkedList)实现栈。

类摘要如下:

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

简单使用如下:

//把栈想象成一个颠倒的数组
$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

PHP 相关文章推荐
第十节 抽象方法和抽象类 [10]
Oct 09 PHP
开发大型 PHP 项目的方法
Jan 02 PHP
解析PHP高效率写法(详解原因)
Jun 20 PHP
PHP使用glob函数遍历目录或文件夹的方法
Dec 16 PHP
php判断用户是否手机访问代码
Jun 08 PHP
php简单统计在线人数的方法
May 10 PHP
利用PHP绘图函数实现简单验证码功能的方法
Oct 18 PHP
php简单构造json多维数组的方法示例
Jun 08 PHP
PHP按符号截取字符串的指定部分的实现方法
Sep 10 PHP
php使用curl伪造浏览器访问操作示例
Sep 30 PHP
laravel请求参数校验方法
Oct 10 PHP
搭建PhpStorm+PhpStudy开发环境的超详细教程
Sep 17 PHP
php遍历类中包含的所有元素的方法
May 12 #PHP
PHP 双链表(SplDoublyLinkedList)简介和使用实例
May 12 #PHP
php实现每天自动变换随机问候语的方法
May 12 #PHP
PHP 数据结构队列(SplQueue)和优先队列(SplPriorityQueue)简单使用实例
May 12 #PHP
php对象和数组相互转换的方法
May 12 #PHP
PHP SPL标准库之数据结构堆(SplHeap)简单使用实例
May 12 #PHP
php对数组内元素进行随机调换的方法
May 12 #PHP
You might like
PHP出错界面
2006/10/09 PHP
simplehtmldom Doc api帮助文档
2012/03/26 PHP
浅谈PHP解析URL函数parse_url和parse_str
2014/11/11 PHP
PHP技术开发微信公众平台
2015/07/22 PHP
thinkPHP5框架auth权限控制类与用法示例
2018/06/12 PHP
浅谈Laravel POST,PUT,PATCH 路由的区别
2019/10/15 PHP
兼容Mozilla必须知道的知识。
2007/01/09 Javascript
选择TreeView控件的树状数据节点的JS方法(jquery)
2010/02/06 Javascript
jquery用get实现ajax在ie里面刷新不进入后台解决方法
2013/08/12 Javascript
jquery解析xml字符串简单示例
2014/04/11 Javascript
node.js中的fs.exists方法使用说明
2014/12/17 Javascript
javascript实现节点(div)名称编辑
2014/12/17 Javascript
jQuery实现多级下拉菜单jDropMenu的方法
2015/08/28 Javascript
如何解决ligerUI布局时Center中的Tab高度大小
2015/11/24 Javascript
用headjs来管理和加载js 提高网站加载速度
2016/11/29 Javascript
react-native ListView下拉刷新上拉加载实现代码
2017/08/03 Javascript
js模块加载方式浅析
2017/08/12 Javascript
基于JS实现html中placeholder属性提示文字效果示例
2018/04/19 Javascript
webpack实现一个行内样式px转vw的loader示例
2018/09/13 Javascript
ES6中异步对象Promise用法详解
2019/07/31 Javascript
微信小程序实现手指拖动选项排序
2020/04/22 Javascript
基于JS实现快速读取TXT文件
2020/08/25 Javascript
[02:44]DOTA2英雄基础教程 克林克兹
2014/01/15 DOTA
[04:23]DOTA2上海特锦赛小组赛第一日 TOP10精彩集锦
2016/02/27 DOTA
[55:11]完美世界DOTA2联赛PWL S2 SZ vs LBZS 第一场 11.26
2020/11/30 DOTA
通过代码实例展示Python中列表生成式的用法
2015/03/31 Python
简介Django中内置的一些中间件
2015/07/24 Python
Python 闭包的使用方法
2017/09/07 Python
pyshp创建shp点文件的方法
2018/12/31 Python
PyQt5 多窗口连接实例
2019/06/19 Python
专业求职信撰写要诀
2014/02/18 职场文书
2015年行政工作总结范文
2015/04/09 职场文书
读《庄子》有感:美而不自知
2019/11/06 职场文书
《雪域豹影》读后感:父爱的伟大
2019/12/23 职场文书
2021-4-3课程——SQL Server查询【2】
2021/04/05 SQL Server
关于MySQL中的 like操作符详情
2021/11/17 MySQL