PHP 标准库 SplStack 栈

PHP技术
435
0
0
2022-04-15
标签   PHP内置库

栈有什么特点

栈遵循后进先出的原则 (LIFO)。这意味着栈只有一个出口用来压入元素和弹出元素,当我们执行压入或者弹出操作的时候要注意栈是否已满或者栈是否是空的。

栈的方法

  • push
  • pop
  • top
  • bottom
  • isEmpty
  • offsetSet
  • offsetGet
  • offsetExists
  • offsetUnset

代码

<?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

参考来源

PHP 标准库 SPL 之数据结构栈(SplStack)简单实践 - 韶华休笑 - 博客园 (cnblogs.com)