石碣镇做网站,去除wordpress主题头部作者信息,台州做微网站,建设银行手机银行网站中缀表达式#xff08;、-、*、/#xff09;
#xff1a;中缀表达式是指操作符位于操作数之间的数学表达式。例如#xff0c;在中缀表达式2 3中#xff0c;操作符位于操作数2和3之间。现给定一个中缀表达式#xff0c…中缀表达式、-、*、/
中缀表达式是指操作符位于操作数之间的数学表达式。例如在中缀表达式2 3中操作符位于操作数2和3之间。现给定一个中缀表达式请计算其结果。
下载源码
基本思路 准备条件创建需要用的数据 创建两个栈分别用于存放数字(num)和操作符(operator)创建一个char类型用于获取每次遍历的字符创建两个int类型用于计算创建一个index充当表达式的索引 遍历表达式的每一个字符根据条件将数字和字符分别存入对应的栈中 获取当前字符判断是否为操作符 是操作符 判断当前符号栈是否为空 为空直接将当前字符入栈不为空判断当前操作符和栈顶的操作符哪个优先级(priority)更高 当前操作符优先级高于栈顶的操作符当前操作符直接入栈当前操作符优先级小于栈顶的操作符从数栈pop出两个元素从符号栈pop出一个元素根据符号栈pop出的元素计算数栈的两个数并将计算结果存入数栈当前符号入符号栈 是数字 判断当前索引index是否到了字符串的末尾 index等于字符串的末尾直接将数入数栈index不等于字符串的末尾判断当前字符的下一位是否还是数字 下一位是数字拼接数字不是数字将当前字符串入数栈字符串置空