php实现堆栈
PHP 实现堆栈的方法
堆栈(Stack)是一种遵循后进先出(LIFO)原则的数据结构。PHP 可以通过数组或 SplStack 类来实现堆栈功能。
使用数组实现堆栈
PHP 的数组函数可以模拟堆栈的压栈(push)和弹栈(pop)操作。

$stack = array();
// 压栈操作
array_push($stack, 'item1');
array_push($stack, 'item2');
// 弹栈操作
$item = array_pop($stack);
echo $item; // 输出: item2
使用 SplStack 类实现堆栈
PHP 的 SPL(Standard PHP Library)提供了 SplStack 类,专门用于堆栈操作。
$stack = new SplStack();
// 压栈操作
$stack->push('item1');
$stack->push('item2');
// 弹栈操作
$item = $stack->pop();
echo $item; // 输出: item2
检查堆栈是否为空
无论是数组还是 SplStack,都可以检查堆栈是否为空。

// 数组方式
if (empty($stack)) {
echo "堆栈为空";
}
// SplStack 方式
if ($stack->isEmpty()) {
echo "堆栈为空";
}
获取堆栈大小
获取堆栈中元素的数量。
// 数组方式
$size = count($stack);
echo $size;
// SplStack 方式
$size = $stack->count();
echo $size;
遍历堆栈
遍历堆栈中的元素。
// 数组方式
foreach ($stack as $item) {
echo $item;
}
// SplStack 方式
$stack->rewind();
while ($stack->valid()) {
echo $stack->current();
$stack->next();
}
注意事项
- 使用数组实现堆栈时,注意数组的索引是从 0 开始的。
- SplStack 是双向链表实现的,性能更高,适合大量数据操作。
- 堆栈操作的时间复杂度为 O(1),效率较高。






