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 相关文章推荐
Windows下的PHP5.0安装配制详解
Sep 05 PHP
用phpmyadmin更改mysql5.0登录密码
Mar 25 PHP
php入门学习知识点六 PHP文件的读写操作代码
Jul 14 PHP
浅析PHP 按位与或 (^ 、&)
Jun 21 PHP
解决PHP mysql_query执行超时(Fatal error: Maximum execution time …)
Jul 03 PHP
php+ajax实现无刷新分页的方法
Nov 04 PHP
php实现格式化多行文本为Js可用格式
Apr 15 PHP
php实现对象克隆的方法
Jun 20 PHP
如何离线执行php任务
Feb 21 PHP
PHP实现创建微信自定义菜单的方法示例
Jul 14 PHP
Laravel中服务提供者和门面模式的入门介绍
Nov 06 PHP
PHP单元测试框架PHPUnit用法详解
Jan 23 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 Xdebug 调试扩展的安装与使用.
2010/03/13 PHP
浅析php header 跳转
2013/06/17 PHP
用Zend Studio+PHPnow+Zend Debugger搭建PHP服务器调试环境步骤
2014/01/19 PHP
编写PHP脚本过滤用户上传的图片
2015/07/03 PHP
PHP学习记录之常用的魔术常量详解
2019/12/12 PHP
?牟┛途W扣了一??效果出?? target=
2007/05/27 Javascript
权威JavaScript 中的内存泄露模式
2007/08/13 Javascript
在IE和VB中支持png图片透明效果的实现方法(vb源码打包)
2011/04/01 Javascript
js replace替换所有匹配的字符串
2014/02/13 Javascript
Node.js中使用事件发射器模式实现事件绑定详解
2014/08/15 Javascript
Egret引擎开发指南之运行项目
2014/09/03 Javascript
Js和JQuery获取鼠标指针坐标的实现代码分享
2015/05/25 Javascript
Jquery实现上下移动和排序代码
2016/10/17 Javascript
Bootstrap中glyphicons-halflings-regular.woff字体报404错notfound的解决方法
2017/01/19 Javascript
详解vue-cli中配置sass
2017/06/21 Javascript
详解Vue SPA项目优化小记
2018/07/03 Javascript
详解微信小程序之scroll-view的flex布局问题
2019/01/16 Javascript
vue-test-utils初使用详解
2019/05/23 Javascript
javascript导出csv文件(excel)的方法示例
2019/08/25 Javascript
JavaScript 严格模式(use strict)用法实例分析
2020/03/04 Javascript
python存储16bit和32bit图像的实例
2018/12/05 Python
详解django+django-celery+celery的整合实战
2019/03/19 Python
python绘制双Y轴折线图以及单Y轴双变量柱状图的实例
2019/07/08 Python
python plotly绘制直方图实例详解
2019/07/22 Python
将python字符串转化成长表达式的函数eval实例
2020/05/11 Python
css3实现椭圆轨迹旋转的示例代码
2018/10/29 HTML / CSS
诗普兰迪官方网站:Splendid
2018/09/18 全球购物
北京某科技有限公司C# .net笔试题
2014/09/27 面试题
汽车检测与维修专业求职信
2013/10/30 职场文书
办公室文秘岗位职责
2013/11/15 职场文书
农场厂长岗位职责
2013/12/28 职场文书
小学教师个人总结
2015/02/05 职场文书
工商局调档介绍信
2015/10/22 职场文书
pytest进阶教程之fixture函数详解
2021/03/29 Python
Python探索生命起源 matplotlib细胞自动机动画演示
2022/04/21 Python
MySQL 执行数据库更新update操作的时候数据库卡死了
2022/05/02 MySQL