栈的概念和操作

一、什么是栈

:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。

特点:后进先出

在这里插入图片描述

二、Java虚拟机栈

(1)栈帧:调用函数是为其开辟的内存叫栈帧。
在这里插入图片描述

三、Java基本库中栈的基本使用

public static void main(String[] args) {
   
        Stack<Integer> stack= new Stack<Integer>();
        //入栈
        stack.push(3);//栈底
        stack.push(4);
        stack.push(5);
        stack.push(7);//栈顶
        //出栈:弹出栈顶元素
        System.out.println(stack.pop());//7
        //再弹一次,此时栈顶元素为5了,如下。
        System.out.println(stack.pop());
        //获取栈顶元素但不删除,这时的栈顶元素以及是4了
        System.out.println(stack.peek());
        //判断栈顶元素是否为空
        System.out.println(stack.empty());
        Stack<Integer> stack1=new Stack<>();
        System.out.println(stack1.empty());
        //获取栈中的元素的位置,栈顶为1号,此时stack中有3,4两个元素,所以4元素的位置为1号
        System.out.println(stack.search(4));
        //使用父类的方法,stack继承自Vector
        System.out.println(stack.isEmpty());
    }

四、中缀表达式、后缀表达式、前缀表达式的转化。

在这里插入图片描述
(1)、后缀表达式求值:
在这里插入图片描述
逆波兰表达式求值:

Stack<Integer> stack=new Stack<>();
    public int evalRPN(String[] tokens) {
   
        for(int i=0;i<tokens.length;i++){
   
        String val=tokens[i
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值