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实现的MySQL通用查询程序
Mar 11 PHP
PHP实现MySQL更新记录的代码
Jun 07 PHP
php下将多个数组合并成一个数组的方法与实例代码
Feb 03 PHP
自己在做项目过程中学到的PHP知识收集
Aug 20 PHP
PHP函数http_build_query使用详解
Aug 20 PHP
CentOS安装php v8js教程
Feb 26 PHP
php实现多维数组排序的方法示例
Mar 23 PHP
PHP数据库操作二:memcache用法分析
Aug 16 PHP
php微信公众号开发之校园图书馆
Oct 20 PHP
PHP使用Session实现上传进度功能详解
Aug 06 PHP
PHP使用JpGraph绘制折线图操作示例【附源码下载】
Oct 18 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
Nov 21 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压缩多个CSS为一个css的代码并缓存
2011/04/21 PHP
20个2014年最优秀的PHP框架回顾
2014/10/22 PHP
微信API接口大全
2015/04/15 PHP
PHP中spl_autoload_register()函数用法实例详解
2016/07/18 PHP
php实现二叉树中和为某一值的路径方法
2018/10/14 PHP
Laravel框架查询构造器简单示例
2019/05/08 PHP
JS模拟多线程
2007/02/07 Javascript
javascript 实现父窗口引用弹出窗口的值的脚本
2007/08/07 Javascript
js 页面输出值
2008/11/30 Javascript
MooBox 基于Mootools的对话框插件
2012/01/20 Javascript
Javascript中的默认参数详解
2014/10/22 Javascript
轻松实现javascript数据双向绑定
2015/11/11 Javascript
jQuery 利用$.ajax 时获取原生XMLHttpRequest 对象的方法
2016/08/25 Javascript
微信小程序 wxapp内容组件 text详细介绍
2016/10/31 Javascript
Angular企业级开发——MVC之控制器详解
2017/02/20 Javascript
Vue0.1的过滤代码如何添加到Vue2.0直接使用
2017/08/23 Javascript
jQuery使用zTree插件实现可拖拽的树示例
2017/09/23 jQuery
原生js实现移动端触摸轮播的示例代码
2017/12/22 Javascript
在vue中使用SockJS实现webSocket通信的过程
2018/08/29 Javascript
Jquery获取radio选中值实例总结
2019/01/17 jQuery
微信小程序代码上传、审核发布小程序
2019/05/18 Javascript
前后端常见的几种鉴权方式(小结)
2019/08/04 Javascript
vue视频播放暂停代码
2019/11/08 Javascript
Vue 解决父组件跳转子路由后当前导航active样式消失问题
2020/07/21 Javascript
[03:03]2014DOTA2西雅图国际邀请赛 Alliance战队巡礼
2014/07/07 DOTA
Python判断文件和文件夹是否存在的方法
2015/05/21 Python
Python端口扫描简单程序
2016/11/10 Python
python操作列表的函数使用代码详解
2017/12/28 Python
神经网络(BP)算法Python实现及应用
2018/04/16 Python
python中通过selenium简单操作及元素定位知识点总结
2019/09/10 Python
python GUI库图形界面开发之PyQt5中QMainWindow, QWidget以及QDialog的区别和选择
2020/02/26 Python
使用python 计算百分位数实现数据分箱代码
2020/03/03 Python
Python实现的北京积分落户数据分析示例
2020/03/27 Python
浅析Python 多行匹配模式
2020/07/24 Python
css3实现背景颜色渐变让图片不再是唯一的实现方式
2012/12/18 HTML / CSS
春风行动实施方案
2014/03/28 职场文书