蓝桥杯 Java B 组之栈的应用(括号匹配、表达式求值)

  一、栈的基本概念

栈(Stack)是一种特殊的线性数据结构,遵循后进先出(Last In First Out,LIFO)的原则。就像一摞盘子,最后放上去的盘子总是最先被拿走。栈有两个主要操作:

     入栈(Push)  :将一个元素添加到栈的顶部。

     出栈(Pop)  :移除并返回栈顶部的元素。

  二、手写栈的实现

  java

class MyStack {

    private int[] array;  // 用于存储栈中的元素

    private int top;      // 栈顶指针,指向栈顶元素的索引

    private int capacity; // 栈的容量



    // 构造函数,初始化栈的容量

    public MyStack(int capacity) {

        this.capacity = capacity;

        this.array = new int[capacity];

        this.top =   1;  // 初始时栈为空,栈顶指针为   1

    }



    // 判断栈是否为空

    public boolean isEmpty() {

        return top ==   1;

    }



    // 判断栈是否已满

    public boolean isFull() {

        return top == capacity    1;

    }



    // 入栈操作

    public void push(int element) {

        if (isFull()) {

            System.out.println("栈已满,无法入栈");

            return;

        }

        array[++top] = element; // 先将栈顶指针加 1,再将元素放入栈顶

    }



    // 出栈操作

    public int pop() {

        if (isEmpty()) {

            System.out.println("栈为空,无法出栈");

            return   1;

        }

        return array[top    ]; // 先返回栈顶元素,再将栈顶指针减 1

    }



    // 获取栈顶元素

    public int peek() {

        if (isEmpty()) {

            System.out.println("栈为空,没有栈顶元素");

            return   1;

        }

        return array[top];

    }

}

  

  三、栈的应用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值