栈---使用栈完成简单的表达式计算(1-2位数的加减乘除)

使用Java代码实现使用栈来完成简单的加减乘除表达式的计算。

实现思想:
1.使用数组来模拟栈
2.创建俩个栈,一个数栈:用来存放数据,一个符号栈:用来存放运算符。
3.在数组模拟实现栈的方法的基础上增加新的方法,用于计算运算符优先级的方法,用于返回栈顶的值的方法,用于判断是否是运算符的方法,用于计算结果的方法。
4.给定一个字符串,对字符串的每个字符进行判断
5.先判断是数字还是运算符,然后压入对应的栈中
6.如果是运算符,在压入栈中的时候需要与栈中运算符(如果栈中有运算符的话)进行优先级比较
7.如果优先级大于栈中运算符的优先级,则将该运算符压入栈中,反之,使用计算方法,将数栈中的俩个元素出栈,符号栈的一个元素出栈,按照对应的方式进行计算,然后再将计算结果压入数栈中,再次对运算符与符号栈中的运算符进行比较,直到优先级大于符号栈中运算符的优先级或者符号栈为空时,将该运算符压入栈中
8.当表达式中所有字符扫描完毕后,数栈中剩余俩个元素,符号栈中剩余一个运算符,最后进行一次运算得出结果

Java代码实现:

public class Calculator {
public static void main(String[] args) {
	// TODO Auto-generated method stub

	//用栈完成表达式的运算
	//处理一位俩位数的+、-、*、/运算!!!!!
	String expression = "51-3*5-1-10";
	//创建俩个栈,数栈、符号栈
	ArraySt
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值