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 相关文章推荐
利用Memcached在php下实现session机制 替换PHP的原生session支持
Aug 21 PHP
PHP游戏编程25个脚本代码
Feb 08 PHP
PHP面向对象的进阶学习(抽像类、接口、final、类常量)
May 07 PHP
PHP获取栏目的所有子级和孙级栏目的ID号示例
Apr 01 PHP
php常用字符串处理函数实例分析
Nov 22 PHP
10条php编程小技巧
Jul 07 PHP
Symfony实现行为和模板中取得request参数的方法
Mar 17 PHP
php自动提交表单的方法(基于fsockopen与curl)
May 09 PHP
PHP数组实例详解
Jun 26 PHP
Yii2验证器(Validator)用法分析
Jul 23 PHP
PHP+redis实现的悲观锁机制示例
Jun 12 PHP
Memcached介绍及php-memcache扩展安装
Apr 01 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中的登陆login
2007/01/18 PHP
利用curl抓取远程页面内容的示例代码
2013/07/23 PHP
php curl 模拟登录并获取数据实例详解
2016/12/22 PHP
Thinkphp5框架简单实现钩子(Hook)行为的方法示例
2019/09/03 PHP
JS中简单的实现像C#中using功能(有源码下载)
2007/01/09 Javascript
javascript instanceof 内部机制探析
2010/10/15 Javascript
汉化英文版的Dreamweaver CS5并自动提示jquery
2010/11/25 Javascript
JavaScript自动设置IFrame高度的小例子
2013/06/08 Javascript
用javascript关闭本窗口技巧小结
2014/09/05 Javascript
JS+CSS实现模仿浏览器网页字符查找功能的方法
2015/02/26 Javascript
javascript中返回顶部按钮的实现
2015/05/05 Javascript
javascript编写贪吃蛇游戏
2015/07/07 Javascript
JavaScript判断对象是否为数组
2015/12/22 Javascript
js采用concat和sort将N个数组拼接起来的方法
2016/01/21 Javascript
gameboy网页闯关游戏(riddle webgame)--仿微信聊天的前端页面设计和难点
2016/02/21 Javascript
解决微信浏览器Javascript无法使用window.location.reload()刷新页面
2016/06/21 Javascript
浅谈NodeJs之数据库异常处理
2017/10/25 NodeJs
vue中本地静态图片路径写法
2018/03/06 Javascript
老生常谈JS中的继承及实现代码
2018/07/06 Javascript
JS实现用特殊符号替换字符串的中间部分区域的实例代码
2018/07/24 Javascript
用element的upload组件实现多图片上传和压缩的示例代码
2019/02/12 Javascript
js实现随机数小游戏
2019/06/28 Javascript
[01:53]2016完美“圣”典风云人物:Maybe专访
2016/12/05 DOTA
Python设计足球联赛赛程表程序的思路与简单实现示例
2016/06/28 Python
Python IDLE 错误:IDLE''s subprocess didn''t make connection 的解决方案
2017/02/13 Python
Python基于动态规划算法解决01背包问题实例
2017/12/06 Python
Python找出微信上删除你好友的人脚本写法
2018/11/01 Python
在Python中使用Neo4j的方法
2019/03/14 Python
python实现图像高斯金字塔的示例代码
2020/12/11 Python
大学生活学习的自我评价
2013/12/03 职场文书
2014年司机工作总结
2014/11/21 职场文书
银行员工考核评语
2014/12/31 职场文书
感谢信范文大全
2015/01/23 职场文书
人事任命通知
2015/04/20 职场文书
2019安全宣传标语大全
2019/08/14 职场文书
Python自然语言处理之切分算法详解
2021/04/25 Python