「后缀表达式怎么求java」后缀表达式怎么求例题
本篇文章给大家谈谈后缀表达式怎么求java,以及后缀表达式怎么求例题对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、java 设计算法,计算用后缀表示法表示的算术表达式的值。
- 2、java后缀表达式实现表达式求值
- 3、java堆栈和后缀表达式求值。
- 4、java测试后缀表达式
- 5、java里中缀表达式怎么变成后缀表达式 用堆栈 只要说下原理就行了啊 文字表达下 有括号的情况
java 设计算法,计算用后缀表示法表示的算术表达式的值。
你好!
后缀表达式也称逆波兰表达式,其优点就在于可以方便的用栈实现表达式的值的计算。和你说一下思路吧:
·从头读入表达式
·如果遇到数则将其压入栈
·如果遇到运算符,从栈中弹出栈顶连个数,实行相应运算,将结果压入栈中
·直到表达式尾,此时栈中应该只有一个元素,即运算结果
·Over
如果对你有帮助,望采纳。
java后缀表达式实现表达式求值
import java.util.Scanner;
import java.util.Stack;
public class 表达式计算 {
private static StackString num = new StackString();//存后缀表达式
private static StackString sign = new StackString();//存入符号
private static StackInteger result = new StackInteger();//放结果
public static void getGroup(String line){//讲字符串转换为后缀表达式
for(int i=0; iline.length(); i++){
char c = line.charAt(i);
if((int)c=48 (int)c=57){//当遇到数字的时候,判断是不是多位数,然后在push进num
int j = i+1;
while(jline.length() (line.charAt(j)=48 line.charAt(j)=57)){
j++;
}
num.push(line.substring(i, j));
i = j-1;
}else if(c == '('){//遇到左括号直接存进num
sign.push(String.valueOf(c));
}else if(c == ')'){//遇到右括号从sign中pop栈顶元素push到num知道遇到'(',然后再pop掉'('
while(!sign.peek().equals("(")){
num.push(sign.pop());
}
sign.pop();
}else{
int n = 0;
if(!sign.empty()){//如果sign中没有元素,直接令n = 0
n = getNum(sign.peek().charAt(0));
}
int m = getNum(c);
if(m = n){//如果当前元素的运算级别比栈顶元素运算级别要高,就直接push进sign
sign.push(String.valueOf(c));
}else{
while(m n){//如果当前运算运算级别比sign栈顶元素运算级别要低,就将sign栈顶元素pop并且push进num,知道不符合条件
num.push(sign.pop());//输入例子2*3+6/3的时候,这里一直报错
if(!sign.empty()){
n = getNum(sign.peek().charAt(0));
}else{
n = 0;
}
}
sign.push(String.valueOf(c));
}
}
}
while(!sign.empty()){
num.push(sign.pop());
}
}
private static int getNum(char c){
int n = 0;
switch(c){
case '+':
case '-':
n = 1;
break;
case '*':
case '/':
n = 2;
break;
}
return n;
}
java堆栈和后缀表达式求值。
import org.python.util.PythonInterpreter;
public class FirstJavaScript {
public static void main(String args[]) {
PythonInterpreter interpreter = new PythonInterpreter();
interpreter.exec("days=('mod','Tue','Wed','Thu','Fri','Sat','Sun'); ");
interpreter.exec("print days[1];");
}// main
}
java测试后缀表达式
public void method(){
this.intrinsicLock.lock();
try{
method body;
}finally(){
this.intrinsicLock.unlock();
}
}
java里中缀表达式怎么变成后缀表达式 用堆栈 只要说下原理就行了啊 文字表达下 有括号的情况
将中缀表达式转换为后缀表达式的算法思想:
·当读到数字直接送至输出队列中
·当读到运算符t时,
a. 将栈中所有优先级高于或等于t的运算符弹出,送到输出队列;
b. t进栈
·读到左括号时总是将它压入栈中
·读到右括号时,将靠近栈顶的第一个左括号上面的运算符全部依次弹出,送至输出队列后,再丢弃左括号。
运用后缀表达式进行计算的具体做法:
·建立一个栈S
·从左到右读后缀表达式,读到数字就将它转换为数值压入栈S中,读到运算符则从栈中依次弹出两个数分别到Y和X,然后以“X 运算符 Y”的形式计算机出结果,再压加栈S中
·如果后缀表达式未读完,就重复上面过程,最后输出栈顶的数值则为结束
关于后缀表达式怎么求java和后缀表达式怎么求例题的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-12-26,除非注明,否则均为
原创文章,转载请注明出处。