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 相关文章推荐
我的论坛源代码(四)
Oct 09 PHP
php中变量及部分适用方法
Mar 27 PHP
php 全文搜索和替换的实现代码
Jul 29 PHP
中英文字符串翻转函数
Dec 09 PHP
php 带逗号千位符数字的处理方法
Jan 10 PHP
php unset全局变量运用问题的深入解析
Jun 17 PHP
php与java通过socket通信的实现代码
Oct 21 PHP
PHP的魔术常量__METHOD__简介
Jul 08 PHP
使用Thinkphp框架开发移动端接口
Aug 05 PHP
jQuery+Ajax+PHP“喜欢”评级功能实现代码
Oct 08 PHP
php使用timthumb生成缩略图的方法
Jan 22 PHP
php微信开发自定义菜单
Aug 27 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统计文件大小,以GB、MB、KB、B输出
2011/05/29 PHP
理解PHP中的stdClass类
2014/04/18 PHP
javascript:void(0)的真正含义实例分析
2008/08/20 Javascript
理解Javascript_14_函数形式参数与arguments
2010/10/20 Javascript
初窥JQuery-Jquery简介 入门了解篇
2010/11/25 Javascript
js读取注册表的键值示例
2013/09/25 Javascript
js中定义一个变量并判断其是否为空的方法
2014/05/13 Javascript
js从Cookies里面取值的简单实现
2014/06/30 Javascript
jQuery中nextUntil()方法用法实例
2015/01/07 Javascript
2则自己编写的jQuery特效分享
2015/02/26 Javascript
JS实现双击编辑可修改状态的方法
2015/08/14 Javascript
JS+CSS实现仿支付宝菜单选中效果代码
2015/09/25 Javascript
Javascript之Math对象详解
2016/06/07 Javascript
JS如何设置cookie有效期为当天24点并弹出欢迎登陆界面
2016/08/04 Javascript
ES6新特性一: let和const命令详解
2017/04/20 Javascript
JS实现json的序列化和反序列化功能示例
2017/06/13 Javascript
详解vue中使用protobuf踩坑记
2019/05/07 Javascript
微信小程序解析富文本过程详解
2019/07/13 Javascript
详解BootStrap表单验证中重置BootStrap-select验证提示不清除的坑
2019/09/17 Javascript
关于layui toolbar和template的结合使用方法
2019/09/19 Javascript
纯js+css实现仿移动端淘宝网站的弹出详情框功能
2019/12/29 Javascript
python局部赋值的规则
2013/03/07 Python
Django在Win7下的安装及创建项目hello word简明教程
2014/07/14 Python
python多线程用法实例详解
2015/01/15 Python
Django应用程序中如何发送电子邮件详解
2017/02/04 Python
TensorFlow实现卷积神经网络CNN
2018/03/09 Python
python-opencv获取二值图像轮廓及中心点坐标的代码
2019/08/27 Python
python matplotlib包图像配色方案分享
2020/03/14 Python
css3.0 图形构成实例练习二
2013/03/19 HTML / CSS
巴基斯坦购物网站:Goto
2019/03/11 全球购物
英国工作场所设备购买网站:Slingsby
2019/05/03 全球购物
领导干部群众路线个人对照检查材料思想汇报
2014/09/30 职场文书
《春酒》教学反思
2016/02/22 职场文书
2019大学生预备党员转正思想汇报
2019/06/21 职场文书
SpringBoot整合RabbitMQ的5种模式实战
2021/08/02 Java/Android
JavaScript圣杯布局与双飞翼布局实现案例详解
2022/08/05 Javascript