2、利用栈计算后缀表达式(逆波兰表达式)

这篇博客介绍如何使用Python解决逆波兰表达式(后缀表达式)的计算问题,支持小括号和多位数整数。通过扫描后缀表达式,遇到数字入栈,遇到操作符进行相应的计算并将结果入栈,最终得出正确结果。
摘要由CSDN通过智能技术生成

一、需求分析

1、输入一个逆波兰表达式,利用栈计算其结果;
2、支持小括号和多位数整数;

二、思路分析

例如:(3+5)*5-6对应的后缀表达式为3 5 + 5 * 6 -,其求值步骤如下:
1.从左到右扫描,遇见数字直接入栈,3和5入栈;
2.遇见操作符+,从栈中弹出两个数3和5,根据操作符计算结果为8,并将结果8入栈;
3.将5入栈;
4.遇见操作符*,弹出两个操作符5和8,计算结果为5*8=40,将40入栈;
5.将6入栈;
6.遇见操作符-,弹出两个数字6和40,计算结果为40-6=34,将34入栈;
7.字符串扫描完毕,栈中剩余数字34就是最终答案。

三、代码

package com.stack;

import java.util.ArrayList;
import java.util.List;
import java.util.Stack;

/**
 * 例如:(3+5)\*5-6对应的后缀表达式为3 5 + 5 \* 6 -,其求值步骤如下: 
 * 1.从左到右扫描,遇见数字直接入栈,3和5入栈;
 * 2.遇见操作符+,从栈中弹出两个数3和5,根据操作符计算结果为8,并将结果8入栈; 
 * 3.将5入栈;
 * 4.遇见操作符*,弹出两个操作符5和8,计算结果为5*8=40,将40入栈; 
 * 5.将6入栈;
 * 6.遇见操作符-,弹出两个数字6和40,计算结果为40-6=34,将34入栈; 
 * 7.字符串扫描完毕,栈中剩余数字34就是最终答案。
 * 
 * @author chaixf
 *
 */
public class PolandNotation {
   
	public static void main(String[] args) 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值