【Java学习】第42节:基础数据结构(四):栈

本文详细介绍了栈这种数据结构,包括概述、链表实现、数组实现及多种应用,如有效括号判断、后缀表达式求值等LeetCode题目。并提供了具体的Java代码实现。
摘要由CSDN通过智能技术生成

目录

1. 栈

1) 概述

2) 链表实现

3) 数组实现

4) 应用

习题

E01. 有效的括号-Leetcode 20

E02. 后缀表达式求值-Leetcode 120

E03. 中缀表达式转后缀

E04. 双栈模拟队列-Leetcode 232

E05. 单队列模拟栈-Leetcode 225


1. 栈

1) 概述

计算机科学中,stack 是一种线性的数据结构,只能在其一端添加数据和移除数据。习惯来说,这一端称之为栈顶,另一端不能操作数据的称之为栈底,就如同生活中的一摞书

先提供一个栈接口

public interface Stack<E> {
    /**
     * 向栈顶压入元素
     * @param value 待压入值
     * @return 压入成功返回 true, 否则返回 false
     */
    boolean push(E value);

    /**
     * 从栈顶弹出元素
     * @return 栈非空返回栈顶元素, 栈为空返回 null
     */
    E pop();

    /**
     * 返回栈顶元素, 不弹出
     * @return 栈非空返回栈顶元素, 栈为空返回 null
     *

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

枫蜜柚子茶

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值