PHP实现栈类

PHP实现栈类的基本方法
使用PHP实现栈类可以通过数组模拟栈的先进后出(LIFO)特性。栈的核心操作包括压栈(push)、弹栈(pop)、查看栈顶元素(peek)以及判断栈是否为空。
class Stack {
private $stack;
private $size;
public function __construct() {
$this->stack = array();
$this->size = 0;
}
public function push($element) {
array_push($this->stack, $element);
$this->size++;
}
public function pop() {
if ($this->isEmpty()) {
return null;
}
$this->size--;
return array_pop($this->stack);
}
public function peek() {
if ($this->isEmpty()) {
return null;
}
return $this->stack[$this->size - 1];
}
public function isEmpty() {
return $this->size === 0;
}
public function size() {
return $this->size;
}
}
使用示例
$stack = new Stack();
$stack->push(10);
$stack->push(20);
echo $stack->pop(); // 输出20
echo $stack->peek(); // 输出10
echo $stack->size(); // 输出1
优化实现方式
通过限制直接操作数组,可以避免潜在的错误。以下代码使用SplStack类(PHP标准库提供的栈实现)作为替代方案:
$stack = new SplStack();
$stack->push('a');
$stack->push('b');
echo $stack->pop(); // 输出b
注意事项
- 压栈和弹栈操作的时间复杂度为O(1)。
- 使用数组模拟时需注意边界条件,如空栈弹栈时的处理。
- SplStack是更高效且线程安全的实现,推荐在生产环境中使用。







