zoukankan      html  css  js  c++  java
  • PHP 标准库 SPL 之数据结构栈(SplStack)简单实践

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

    代码:

     1 <?php
     2 header("Content-type:text/html; charset=utf-8");
     3 
     4 $stack = new SplStack();
     5 
     6 //LIFO
     7 echo 'stack push',PHP_EOL;
     8 
     9 //入栈
    10 $stack->push('hello');
    11 $stack->push('world');
    12 $stack->push('web');
    13 $stack[] = 'site';
    14 $stack[] = 'devlop';
    15 
    16 
    17 echo '***************',PHP_EOL;
    18 
    19 //设置index为 0 的元素(栈顶)的值为 DEVLOP,遍历栈
    20 $stack->offsetSet(0, 'DEVLOP');
    21 foreach($stack as $val) {
    22     echo $val,PHP_EOL;
    23 }
    24 
    25 echo '***************',PHP_EOL;
    26 //查看栈元素个数
    27 echo '栈内有',$stack->count(),'个元素',PHP_EOL;
    28 echo '栈内有',count($stack),'个元素',PHP_EOL;
    29 
    30 echo '***************',PHP_EOL;
    31 //查看栈顶、栈底元素
    32 echo '栈顶元素是',$stack->top(),PHP_EOL;
    33 echo '栈底元素是',$stack->bottom(),PHP_EOL;
    34 
    35 echo '***************',PHP_EOL;
    36 //遍历栈
    37 foreach($stack as $val) {
    38     echo $val,PHP_EOL;
    39 }
    40 
    41 echo '***************',PHP_EOL;
    42 //出栈
    43 while($stack->count() != 0) {
    44     echo '栈顶元素是:',$stack->top(),PHP_EOL;
    45     $stack->pop();
    46 }

    输出:

    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

  • 相关阅读:
    谈谈IE条件注释
    0916 编程实验一 词法分析程序
    C语言文法的理解
    复利究极算法
    0106递归下降语意分析
    0309 复利计算
    关于语法树和文法的评价
    10.22 词法分析程序实验心得
    0909 编译原理
    0302 关于就业方面的一些感想
  • 原文地址:https://www.cnblogs.com/dee0912/p/4913195.html
Copyright © 2011-2022 走看看