PHP 5.3.0 版本及以上的堆栈描述可以使用标准库 SPL 中的 SplStack class,SplStack 类继承双链表 ( SplDoublyLinkedList ) 实现栈。

代码:

 <?php
header("Content-type:text/html; charset=utf-8"); $stack = new SplStack(); //LIFO
echo 'stack push',PHP_EOL; //入栈
$stack->push('hello');
$stack->push('world');
$stack->push('web');
$stack[] = 'site';
$stack[] = 'devlop'; echo '***************',PHP_EOL; //设置index为 0 的元素(栈顶)的值为 DEVLOP,遍历栈
$stack->offsetSet(0, 'DEVLOP');
foreach($stack as $val) {
echo $val,PHP_EOL;
} echo '***************',PHP_EOL;
//查看栈元素个数
echo '栈内有',$stack->count(),'个元素',PHP_EOL;
echo '栈内有',count($stack),'个元素',PHP_EOL; echo '***************',PHP_EOL;
//查看栈顶、栈底元素
echo '栈顶元素是',$stack->top(),PHP_EOL;
echo '栈底元素是',$stack->bottom(),PHP_EOL; echo '***************',PHP_EOL;
//遍历栈
foreach($stack as $val) {
echo $val,PHP_EOL;
} echo '***************',PHP_EOL;
//出栈
while($stack->count() != 0) {
echo '栈顶元素是:',$stack->top(),PHP_EOL;
$stack->pop();
}

输出:

stack push
***************
DEVLOP
site
web
world
hello
***************
栈内有5个元素
栈内有5个元素
***************
栈顶元素是DEVLOP
栈底元素是hello
***************
DEVLOP
site
web
world
hello
***************
栈顶元素是:DEVLOP
栈顶元素是:site
栈顶元素是:web
栈顶元素是:world
栈顶元素是:hello

参考:

http://www.jb51.net/article/65917.htm

http://www.th7.cn/Program/php/201508/521212.shtml

PHP 标准库 SPL 之数据结构栈(SplStack)简单实践的更多相关文章

  1. PHP SPL标准库之数据结构栈(SplStack)介绍(基础array已经可以解决很多问题了,现在开始解决问题)

    PHP SPL标准库之数据结构栈(SplStack)介绍(基础array已经可以解决很多问题了,现在开始解决问题) 一.总结 SplStack就是继承双链表(SplDoublyLinkedList)实 ...

  2. php标准库spl栈SplStack如何使用?

    php标准库spl栈SplStack如何使用? 一.总结 php标准库spl栈SplStack介绍.(SplStack类)(各种方法都支持) 1.SplStack类:$stack = new SplS ...

  3. PHP标准库 (SPL) 笔记

    简介 SPL是Standard PHP Library(PHP标准库)的缩写. The Standard PHP Library (SPL) is a collection of interfaces ...

  4. 【夯实PHP基础】PHP标准库 SPL

    PHP SPL笔记 这几天,我在学习PHP语言中的SPL. 这个东西应该属于PHP中的高级内容,看上去很复杂,但是非常有用,所以我做了长篇笔记.不然记不住,以后要用的时候,还是要从头学起. 由于这是供 ...

  5. PHP标准库 SPL

    PHP SPL笔记 这几天,我在学习PHP语言中的SPL. 这个东西应该属于PHP中的高级内容,看上去很复杂,但是非常有用,所以我做了长篇笔记.不然记不住,以后要用的时候,还是要从头学起. 由于这是供 ...

  6. PHP标准库SPL

    SPL是Standard PHP Library(PHP标准库)的缩写.用来解决典型(常见)问题(common problems)的一组接口与类的集合 典型问题(common problems) - ...

  7. SPL标准库常用的数据结构

    栈数据结构 $stack = new SplStack(); //栈数据结构->先进后出 2 $stack->push('data1'); //入栈 $stack->push('da ...

  8. iOS标准库中常用数据结构和算法之查找

    参数: key: [in] 要查找的元素.base:[in] 数组元素的首地址.nelp: [in/out] 数组的元素个数指针.width: [in] 数组中每个元素的尺寸.compar: [in] ...

  9. 【转】C++标准库和标准模板库

    C++强大的功能来源于其丰富的类库及库函数资源.C++标准库的内容总共在50个标准头文件中定义.在C++开发中,要尽可能地利用标准库完成.这样做的直接好处包括:(1)成本:已经作为标准提供,何苦再花费 ...

随机推荐

  1. 20145223《Java程序程序设计》第8周学习总结

    20145223 <Java程序设计>第8周学习总结 教材学习内容总结 第十四章 NIO与NIO2 ·NIO使用频道(Channel)来衔接数据节点,在处理数据时,NIO可以让你设定缓冲区 ...

  2. wpf,记录一下颜色设置的2中方法,,,

    <ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Shape.Fill).(SolidColorBrush.Color ...

  3. Thymeleaf 集成spring

    Thymeleaf 集成spring 如需先了解Thymeleaf的单独使用,请参考<Thymeleaf模板引擎使用>一文. 依赖的jar包 Thymeleaf 已经集成了spring的3 ...

  4. mybatis做like模糊查询

    http://www.cnblogs.com/cyttina/p/3894428.html

  5. Android 自动化测试—robotium(六) 通过命令行执行Robotium自动化测试用例及导出报告

    1.运行测试工程下的所有用例 adb shell am instrument -w com.application.test/android.test.InstrumentationTestRunne ...

  6. [转]JavaScript跨域总结与解决办法

    转载自http://www.cnblogs.com/rainman/archive/2011/02/20/1959325.html仅用作个人读书笔记. 什么是跨域 1.document.domain+ ...

  7. angularjs学习资料

    API http://www.yiibai.com/angularjs/angularjs_scopes.html 视频 http://v.youku.com/v_show/id_XNjQ3MjA1N ...

  8. BZOJ 2527 & 整体二分

    Byteotian Interstellar Union有N个成员国.现在它发现了一颗新的星球,这颗星球的轨道被分为M份(第M份和第1份相邻),第i份上有第Ai个国家的太空站. 这个星球经常会下陨石雨 ...

  9. ACM: 限时训练题解-Street Lamps-贪心-字符串【超水】

    Street Lamps   Bahosain is walking in a street of N blocks. Each block is either empty or has one la ...

  10. To Do List

    妈呀...发现不发博文公布自己要学的东西压力少太多了.......... 然后就会变得颓废..................... 求大家监督QAQ....To Do List是近3天左右目标,3天 ...