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
时间: 2024-10-14 20:38:06