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 相关文章推荐
php5中date()得出的时间为什么不是当前时间的解决方法
Jun 30 PHP
腾讯QQ php程序员面试题目整理
Jun 08 PHP
PHP的array_diff()函数在处理大数组时的效率问题
Nov 27 PHP
使用php将某个目录下面的所有文件罗列出来的方法详解
Jun 21 PHP
解析PHP中ob_start()函数的用法
Jun 24 PHP
php跨服务器访问方法小结
May 12 PHP
php中PDO方式实现数据库的增删改查
May 17 PHP
PHP代码实现爬虫记录――超管用
Jul 31 PHP
PHP面向对象继承用法详解(优化与减少代码重复)
Dec 02 PHP
php自定义截取中文字符串-utf8版
Feb 27 PHP
php读取出一个文件夹及其子文件夹下所有文件的方法示例
Jun 15 PHP
PHP的PDO事务与自动提交
Jan 24 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 需要掌握的东西 不做浮躁的人
2009/12/28 PHP
关于PHP递归算法和应用方法介绍
2013/04/15 PHP
PHP批量采集下载美女图片的实现代码
2013/06/03 PHP
关于php中一些字符串总结
2016/05/05 PHP
PHP实现双链表删除与插入节点的方法示例
2017/11/11 PHP
phpcms实现验证码替换及phpcms实现全站搜索功能教程详解
2017/12/13 PHP
PHP数组去重的更快实现方式分析
2018/05/09 PHP
PHP通过GD库实现验证码功能示例
2019/02/23 PHP
PHP基于array_unique实现二维数组去重
2020/07/14 PHP
javascript 命名空间以提高代码重用性
2008/11/13 Javascript
几个有趣的Javascript Hack
2010/07/24 Javascript
jquery中实现标签切换效果的代码
2011/03/01 Javascript
JQUERY对单选框(radio)操作的小例子
2013/04/25 Javascript
JS调用CS里的带参方法实例
2013/08/01 Javascript
js由下向上不断上升冒气泡效果实例
2015/05/07 Javascript
简述JavaScript的正则表达式中test()方法的使用
2015/06/16 Javascript
JS实现仿FLASH效果的竖排导航代码
2015/09/15 Javascript
利用C/C++编写node.js原生模块的方法教程
2017/07/07 Javascript
js限制输入框只能输入数字(onkeyup触发)
2018/09/28 Javascript
小程序实现留言板
2018/11/02 Javascript
详解如何搭建mpvue框架搭配vant组件库的小程序项目
2019/05/16 Javascript
sharp.js安装过程中遇到的问题总结
2020/04/02 Javascript
Python函数中的函数(闭包)用法实例
2016/03/15 Python
django加载本地html的方法
2018/05/27 Python
让Django支持Sql Server作后端数据库的方法
2018/05/29 Python
django框架基于模板 生成 excel(xls) 文件操作示例
2019/06/19 Python
解决win7操作系统Python3.7.1安装后启动提示缺少.dll文件问题
2019/07/15 Python
django mysql数据库及图片上传接口详解
2019/07/18 Python
Python Django实现layui风格+django分页功能的例子
2019/08/29 Python
Python下利用BeautifulSoup解析HTML的实现
2020/01/17 Python
Python 如何反方向迭代一个序列
2020/07/28 Python
Python读取pdf表格写入excel的方法
2021/01/22 Python
Sperry澳大利亚官网:源自美国帆船鞋创始品牌
2019/07/29 全球购物
合同权益转让协议书模板
2014/11/18 职场文书
处理canvas绘制图片模糊问题
2022/05/11 Javascript
Mysql中的触发器定义及语法介绍
2022/06/25 MySQL