当前位置:首页 > PHP

php实现栈

2026-02-27 10:59:29PHP

PHP实现栈的方法

在PHP中实现栈可以通过数组或SplStack类来完成。栈遵循后进先出(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;
    }
}

使用SplStack类实现栈

PHP的标准库中提供了SplStack类,它是双向链表的栈实现,使用起来更高效。

$stack = new SplStack();
$stack->push('a'); // 压栈
$stack->push('b');
$stack->push('c');

echo $stack->pop(); // 弹栈,输出 'c'
echo $stack->top(); // 查看栈顶元素,输出 'b'

栈的应用示例

栈常用于解决需要后进先出处理的场景,例如括号匹配、表达式求值等。

// 括号匹配示例
function isBalanced($str) {
    $stack = new SplStack();
    $pairs = [
        ')' => '(',
        '}' => '{',
        ']' => '['
    ];

    for ($i = 0; $i < strlen($str); $i++) {
        $char = $str[$i];
        if (in_array($char, ['(', '{', '['])) {
            $stack->push($char);
        } elseif (in_array($char, [')', '}', ']'])) {
            if ($stack->isEmpty() || $stack->pop() != $pairs[$char]) {
                return false;
            }
        }
    }
    return $stack->isEmpty();
}

以上方法展示了在PHP中实现栈的两种方式及其基本应用。根据具体需求选择数组实现或SplStack类实现。

php实现栈

标签: php
分享给朋友:

相关文章

php实现递归

php实现递归

递归的基本概念 递归是一种函数调用自身的技术,适用于解决可以分解为相同子问题的问题。在PHP中,递归需要明确的终止条件(基线条件),否则会导致无限循环。 递归实现阶乘 阶乘是经典的递归案例,n! =…

php长连接实现

php长连接实现

PHP 长连接实现方法 长连接(Keep-Alive)允许客户端与服务器在一次TCP连接中发送和接收多个HTTP请求/响应,减少重复建立连接的开销。以下是PHP中实现长连接的几种方式: 配置HT…

php验证码实现

php验证码实现

验证码实现方法 在PHP中实现验证码功能通常涉及生成随机字符串或数字,将其转换为图像,并通过会话(Session)进行验证。以下是几种常见的实现方式: 使用GD库生成图像验证码 GD库是PHP内置…

php 购物车实现

php 购物车实现

数据库设计 购物车功能通常需要设计数据库表存储商品和用户信息。常见的表包括products(商品表)、users(用户表)和cart(购物车表)。cart表通常包含字段:id(主键)、user_id(…

php验证码的实现

php验证码的实现

PHP 验证码实现方法 使用 GD 库生成基础验证码 创建画布并生成随机字符串作为验证码内容: session_start(); $width = 120; $height = 40; $imag…

php 实现类

php 实现类

PHP 类的基本实现 在 PHP 中,类通过 class 关键字定义,后跟类名和一对花括号。类名通常遵循大驼峰命名法(如 ClassName)。以下是基本语法: class ClassName {…