php实现栈实现
PHP 实现栈
栈是一种遵循后进先出(LIFO)原则的数据结构。在 PHP 中,可以通过数组或类来实现栈的功能。

使用数组实现栈
PHP 的数组本身就支持栈的操作,可以使用 array_push() 和 array_pop() 函数来模拟栈的行为。

$stack = [];
// 入栈
array_push($stack, 'a');
array_push($stack, 'b');
array_push($stack, 'c');
// 出栈
$top = array_pop($stack);
echo $top; // 输出 'c'
// 查看栈顶元素
$top = end($stack);
echo $top; // 输出 'b'
// 检查栈是否为空
$isEmpty = empty($stack);
echo $isEmpty ? '栈为空' : '栈不为空';
使用类实现栈
通过封装一个栈类,可以更清晰地管理栈的操作。
class Stack {
private $stack;
private $size;
public function __construct() {
$this->stack = [];
$this->size = 0;
}
// 入栈
public function push($element) {
$this->stack[$this->size++] = $element;
}
// 出栈
public function pop() {
if ($this->isEmpty()) {
return null;
}
return $this->stack[--$this->size];
}
// 查看栈顶元素
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('a');
$stack->push('b');
$stack->push('c');
echo $stack->pop(); // 输出 'c'
echo $stack->peek(); // 输出 'b'
echo $stack->size(); // 输出 2
注意事项
- 使用数组实现栈时,需要注意数组的索引管理。
- 使用类实现栈时,可以更好地封装逻辑,避免直接操作数组。
- 在实际应用中,可以根据需求扩展栈的功能,例如添加异常处理或支持泛型。






