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 相关文章推荐
简化php模板页面中分页代码的解析
Feb 06 PHP
php 求质素(素数) 的实现代码
Apr 12 PHP
PHP中其实也可以用方法链
Nov 10 PHP
php删除数组元素示例分享
Feb 17 PHP
PHP读取文件内容后清空文件示例代码
Mar 18 PHP
smarty模板引擎基础知识入门
Mar 30 PHP
PHP用户验证和标签推荐的简单使用
Oct 31 PHP
windows下的WAMP环境搭建图文教程(推荐)
Jul 27 PHP
PHP多进程之pcntl_fork的实例详解
Oct 15 PHP
详解Yaf框架PHPUnit集成测试方法
Dec 27 PHP
TP5框架页面跳转样式操作示例
Apr 05 PHP
php中加密解密DES类的简单使用方法示例
Mar 26 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
dedecms防止FCK乱格式化你的代码的修改方法
2007/03/17 PHP
php+mysql数据库实现无限分类的方法
2014/12/12 PHP
php实现有序数组旋转后寻找最小值方法
2018/09/27 PHP
PHP Swoole异步Redis客户端实现方法示例
2019/10/24 PHP
Js为表单动态添加节点内容的方法
2015/02/10 Javascript
js文本框走动跑马灯效果代码分享
2015/08/25 Javascript
jquery ui dialog替代confirm实例分析
2016/01/25 Javascript
微信小程序 地图(map)实例详解
2016/11/16 Javascript
js实现用户输入的小写字母自动转大写字母的方法
2017/01/21 Javascript
JavaScript实现按键精灵的原理分析
2017/02/21 Javascript
JS实现的DOM插入节点操作示例
2018/04/04 Javascript
JS 数组随机洗牌的实例代码
2018/09/12 Javascript
浅谈Vue 性能优化之深挖数组
2018/12/11 Javascript
nodejs分离html文件里面的js和css的方法
2019/04/09 NodeJs
element表格翻页第2页从1开始编号(后端从0开始分页)
2019/12/10 Javascript
微信小程序scroll-view实现滚动到锚点左侧导航栏点餐功能(点击种类,滚动到锚点)
2020/06/11 Javascript
[01:37]DOTA2超级联赛专访ChuaN 传奇般的电竞之路
2013/06/19 DOTA
Python中AND、OR的一个使用小技巧
2015/02/18 Python
Django实现的自定义访问日志模块示例
2017/06/23 Python
使用Python的Dataframe取两列时间值相差一年的所有行方法
2018/07/10 Python
python binascii 进制转换实例
2019/06/12 Python
pytorch中的自定义数据处理详解
2020/01/06 Python
解决jupyter运行pyqt代码内核重启的问题
2020/04/16 Python
浅谈pandas dataframe对除数是零的处理
2020/07/20 Python
python按顺序重命名文件并分类转移到各个文件夹中的实现代码
2020/07/21 Python
专门经营化妆刷的美国彩妆品牌:Sigma Beauty
2017/09/11 全球购物
英国Iceland杂货店:网上食品购物
2020/12/16 全球购物
培训心得体会
2013/12/29 职场文书
不打扫卫生检讨书
2014/02/12 职场文书
情人节活动策划方案
2014/02/27 职场文书
负责人任命书范本
2014/06/04 职场文书
校运动会广播稿(100篇)
2014/09/12 职场文书
学校食堂标语
2014/10/06 职场文书
2015年学生管理工作总结
2015/05/26 职场文书
Nginx速查手册及常见问题
2022/04/07 Servers
python manim实现排序算法动画示例
2022/08/14 Python