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 相关文章推荐
关于Appserv无法打开localhost问题的解决方法
Oct 16 PHP
PHP 读取文件内容代码(txt,js等)
Dec 06 PHP
php实现无限级分类实现代码(递归方法)
Jan 01 PHP
php设计模式 Composite (组合模式)
Jun 26 PHP
PHP关联数组的10个操作技巧
Jan 21 PHP
探讨GDFONTPATH能否被winxp下的php支持
Jun 21 PHP
ThinkPHP实现二级循环读取的方法
Nov 03 PHP
CI框架中site_url()和base_url()的区别
Jan 07 PHP
thinkphp autoload 命名空间自定义 namespace
Jul 17 PHP
php投票系统之增加与删除投票(管理员篇)
Jul 01 PHP
php设计模式之装饰模式应用案例详解
Jun 17 PHP
PHP使用ajax的post方式下载excel文件简单示例
Aug 06 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
复杂检索数据并分页显示的处理方法
2006/10/09 PHP
php删除左端与右端空格的方法
2014/11/29 PHP
PHP模板解析类实例
2015/07/09 PHP
php实现购物车功能(以大苹果购物网为例)
2017/03/09 PHP
jQuery 判断是否包含在数组中Array[]的方法
2016/08/03 Javascript
iOS和Android用同一个二维码实现跳转下载链接的方法
2016/09/28 Javascript
js自定义QQ菜单效果
2017/01/10 Javascript
JavaScript计时器用法分析【setTimeout和clearTimeout】
2017/01/18 Javascript
详解angularJs指令的3种绑定策略
2017/04/13 Javascript
理解 javascript 中的函数表达式与函数声明
2017/07/07 Javascript
关于预加载InstantClick的问题解决方法
2017/09/12 Javascript
基于Vue2实现简易的省市区县三级联动组件效果
2018/11/05 Javascript
python中关于日期时间处理的问答集锦
2013/03/08 Python
Python实现读取目录所有文件的文件名并保存到txt文件代码
2014/11/22 Python
pyqt5简介及安装方法介绍
2018/01/31 Python
Django中的CBV和FBV示例介绍
2018/02/25 Python
python-itchat 统计微信群、好友数量,及原始消息数据的实例
2019/02/21 Python
python 实现交换两个列表元素的位置示例
2019/06/26 Python
django admin 添加自定义链接方式
2020/03/11 Python
基于FME使用Python过程图解
2020/05/13 Python
python安装和pycharm环境搭建设置方法
2020/05/27 Python
详解移动端HTML5音频与视频问题及解决方案
2018/08/22 HTML / CSS
html5 Canvas画图教程(5)—canvas里画曲线之arc方法
2013/01/09 HTML / CSS
美国领先的家庭智能音响系统品牌:Sonos
2018/07/20 全球购物
加州风格的游泳和沙滩装品牌:Cupshe
2019/06/10 全球购物
英国电子专家:maplin
2019/09/04 全球购物
金智子午JAVA面试题
2015/09/04 面试题
医学生自我鉴定范文
2013/11/08 职场文书
优秀企业获奖感言
2014/02/01 职场文书
竞选学生会演讲稿
2014/04/25 职场文书
2014年药店店长工作总结
2014/11/17 职场文书
2014年小学少先队工作总结
2014/12/18 职场文书
员工试用期工作总结
2019/06/20 职场文书
带你了解CSS基础知识,样式
2021/07/21 HTML / CSS
PO模式在selenium自动化测试框架的优势
2022/03/20 Python
鸿蒙3.0体验感怎么样? 鸿蒙3.0系统评测向
2022/08/14 数码科技