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 巧用数组降低程序的时间复杂度
Jan 01 PHP
深入extjs与php参数交互的详解
Jun 25 PHP
php实现httpclient类示例
Apr 08 PHP
php获取textarea的值并处理回车换行的方法
Oct 20 PHP
微信公众平台网页授权获取用户基本信息中授权回调域名设置的变动
Oct 21 PHP
PHP保存带BOM文件的方法
Feb 12 PHP
php从数组中随机选择若干不重复元素的方法
Mar 14 PHP
php使用指定字符列表生成随机字符串的方法
Apr 18 PHP
PHP编程文件处理类SplFileObject和SplFileInfo用法实例分析
Jul 22 PHP
php实现解析xml并生成sql语句的方法
Feb 03 PHP
利用PHP扩展Xhprof分析项目性能实践教程
Sep 05 PHP
php使用Swoole实现毫秒级定时任务的方法
Sep 04 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 fckeditor 调用的函数
2009/06/21 PHP
PHP缓存技术的多种方法小结
2012/08/14 PHP
php网站被挂木马后的修复方法总结
2014/11/06 PHP
PHP连接操作access数据库实例
2015/03/30 PHP
PHP7下协程的实现方法详解
2017/12/17 PHP
详解php协程知识点
2018/09/21 PHP
PHP使用递归按层级查找数据的方法
2019/11/10 PHP
PHP图像处理 imagestring添加图片水印与文字水印操作示例
2020/02/06 PHP
JavaScript For Beginners(转载)
2007/01/05 Javascript
javascript下function声明一些小结
2007/12/28 Javascript
jQuery实现id模糊查询的小例子
2013/03/19 Javascript
jquery select多选框的左右移动 具体实现代码
2013/07/03 Javascript
JS动态调用方法名示例介绍
2013/12/18 Javascript
JavaScript获取两个数组交集的方法
2015/06/09 Javascript
使用HTML5+Boostrap打造简单的音乐播放器
2016/08/05 Javascript
vue实现可增删查改的成绩单
2016/10/27 Javascript
js中编码函数:escape,encodeURI与encodeURIComponent详解
2017/03/21 Javascript
javascript实现文字无缝滚动效果
2017/08/26 Javascript
js捆绑TypeScript声明文件的方法教程
2018/04/13 Javascript
轻松解决JavaScript定时器越走越快的问题
2019/05/13 Javascript
Python实现mysql数据库更新表数据接口的功能
2017/11/19 Python
查看django版本的方法分享
2018/05/14 Python
Python框架Flask的基本数据库操作方法分析
2018/07/13 Python
浅析PEP572: 海象运算符
2019/10/15 Python
Python-opencv 双线性插值实例
2020/01/17 Python
学python需要去培训机构吗
2020/07/01 Python
Python接口自动化测试的实现
2020/08/28 Python
世嘉游戏英国官方商店:SEGA Shop UK
2019/09/20 全球购物
J2EE包括哪些技术
2016/11/25 面试题
求职简历的自我评价
2014/01/31 职场文书
舞蹈教育学专业自荐信
2014/06/15 职场文书
机关干部四风问题自我剖析及整改措施
2014/10/26 职场文书
2015年社会实践个人总结
2015/03/06 职场文书
Mysql超详细讲解死锁问题的理解
2022/04/01 MySQL
python神经网络学习 使用Keras进行简单分类
2022/05/04 Python
多线程Spring通过@Scheduled实现定时任务
2022/05/25 Java/Android