php实现栈实现
栈的基本概念
栈是一种遵循后进先出(LIFO)原则的数据结构,主要操作包括压栈(push)和弹栈(pop)。在PHP中,栈可以通过数组或SplStack类实现。
使用数组实现栈
PHP数组天然支持栈操作,通过array_push()和array_pop()函数即可实现:
$stack = [];
array_push($stack, 'a'); // 压栈
array_push($stack, 'b');
$top = array_pop($stack); // 弹栈(返回'b')
使用SplStack类
PHP标准库(SPL)提供了SplStack类,专门用于栈操作:
$stack = new SplStack();
$stack->push('a'); // 压栈
$stack->push('b');
$top = $stack->pop(); // 弹栈(返回'b')
手动实现栈类
通过OOP封装栈的基本操作:
class Stack {
private $items = [];
public function push($item) {
$this->items[] = $item;
}
public function pop() {
if ($this->isEmpty()) {
throw new RuntimeException("栈为空");
}
return array_pop($this->items);
}
public function isEmpty() {
return empty($this->items);
}
}
复杂度分析
- 压栈/弹栈:时间复杂度均为O(1),因为只涉及数组末尾操作。
- 空间复杂度:O(n),n为栈中元素数量。
注意事项
- 数组实现的栈需注意越界问题,弹栈前应检查是否为空。
SplStack性能更优且线程安全,推荐生产环境使用。







