逆波兰计算器

本文介绍了逆波兰表达式,又称后缀表达式,并详细阐述了如何利用栈进行后缀表达式的计算以及中缀表达式到后缀表达式的转换过程。通过具体的例子和规则解释了运算符的处理策略,包括括号的特殊处理。此外,还提及了相关算法在LeetCode上的应用。
摘要由CSDN通过智能技术生成

逆波兰计算器

关键字:逆波兰表达式 中缀转后缀

前言

逆波兰(reverse Polish) 表达式又称后缀(postfix)表达式。逆波兰表达式把运算量写在前面,把算符写在后面。

例如:
4.99 ∗ 1.06 + 5.9 + 6.99 ∗ 1.06 4.99 * 1.06 + 5.9 + 6.99 * 1.06 4.991.06+5.9+6.991.06
转化为后缀表达式为:
4.99   1.06 ∗ 5.99 + 6.99   1.06 ∗ + 4.99 \ 1.06 * 5.99 + 6.99 \ 1.06*+ 4.99 1.065.99+6.99 1.06+

一、后缀表达式计算

​ 具体的计算方式需要借助栈来实现,具体的规则为:遍历表达式的字符串,遇见的字符为数字时,直接入栈;遇见运算符时,将栈顶的两个元素推出,使用运算符进行计算,将得到的元素入栈;

Stack stack; //创建栈
for char in String:
	if char is Number:
		stack.push(char);
	if char is operator:
		stack.poll() and stack.poll() do operation;
		stack.push(return of result);
	

下面以式为例:
6   5   2   3 + 8 ∗ + 3 + ∗ 6 \ 5 \ 2 \ 3+8*+ 3 +* 6 5 2 3+8+3+
在这里插入图片描述

    public double caculateRPN(String str){
   
        LinkedList
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值