当前位置:首页 > PHP

数组 实现堆栈 php

2026-03-13 09:01:12PHP

使用数组实现堆栈(Stack)的 PHP 示例

堆栈是一种遵循后进先出(LIFO)原则的数据结构,可以通过 PHP 数组轻松实现。以下是几种核心操作的方法:

初始化堆栈

使用空数组表示堆栈:

$stack = array();

压入元素(Push)

使用 array_push() 函数或直接赋值:

array_push($stack, 'item1');
$stack[] = 'item2'; // 更高效的写法

弹出元素(Pop)

使用 array_pop() 移除并返回顶部元素:

$topItem = array_pop($stack);

查看顶部元素(Peek)

不修改堆栈的情况下获取顶部元素:

数组 实现堆栈 php

$topItem = end($stack);

检查堆栈是否为空

$isEmpty = empty($stack);

获取堆栈大小

$size = count($stack);

完整示例代码

class Stack {
    private $stack;

    public function __construct() {
        $this->stack = array();
    }

    public function push($item) {
        $this->stack[] = $item;
    }

    public function pop() {
        if ($this->isEmpty()) {
            return null;
        }
        return array_pop($this->stack);
    }

    public function peek() {
        return end($this->stack);
    }

    public function isEmpty() {
        return empty($this->stack);
    }

    public function size() {
        return count($this->stack);
    }
}

// 使用示例
$stack = new Stack();
$stack->push(10);
$stack->push(20);
echo $stack->pop(); // 输出20
echo $stack->peek(); // 输出10

注意事项

  • PHP 数组本身已经提供了动态扩容功能,无需手动处理容量问题
  • array_push() 比直接赋值性能略差,推荐使用 $array[] = $value 语法
  • 堆栈操作的时间复杂度均为 O(1)

标签: 堆栈数组
分享给朋友:

相关文章

java如何初始化数组

java如何初始化数组

初始化数组的方法 在Java中,数组可以通过多种方式进行初始化。以下是几种常见的方法: 静态初始化(直接赋值) 在声明数组时直接指定元素值,适用于已知数组内容的情况: int[] numbers…

java如何定义字符串数组

java如何定义字符串数组

定义字符串数组的方法 在Java中定义字符串数组有多种方式,具体取决于使用场景和初始化需求。以下是常见的几种方法: 直接初始化数组元素 String[] strArray = {"Appl…

vue实现数组排序

vue实现数组排序

vue实现数组排序的方法 在Vue中实现数组排序主要依赖JavaScript的数组排序方法,结合Vue的响应式特性确保视图同步更新。以下是几种常见实现方式: 使用JavaScript原生sort方法…

vue实现添加数组

vue实现添加数组

Vue 实现添加数组的方法 在 Vue 中,可以通过多种方式实现向数组添加元素。以下是几种常见的方法: 使用 push 方法 通过 Vue 的响应式系统,直接调用数组的 push 方法添加元素:…

vue 数组响应式实现

vue 数组响应式实现

Vue 数组响应式实现原理 Vue 通过重写数组的原型方法来实现对数组操作的响应式监听。具体实现基于以下机制: 拦截数组变异方法 Vue 创建了一个继承自原生 Array 原型的对象,并重写了以下会…

react如何定义一哥数组

react如何定义一哥数组

定义数组的方法 在React中,可以通过多种方式定义和使用数组。以下是常见的几种方法: 使用useState钩子定义状态数组 import { useState } from 'react…