中序表达式转后序表达式的java实现
来源:互联网 发布:淘宝定制t恤好做吗 编辑:程序博客网 时间:2024/06/05 11:46
<pre name="code" class="java">//将一个中序表达式转换为后序表达式
public class InfixToPostfix {public static int compare(String s1, String s2){if((s1.equals("+")||s1.equals("-"))&&(s2.equals("*")||s2.equals("/")))return -1;else if((s1.equals("*")||s1.equals("/"))&&(s2.equals("+")||s2.equals("-")))return 1;else return 0;}public static void main(String[] args){String[] strs = StdIn.readStrings();ListStack<String> mascot = new ListStack<String>();String exp = "";for(int i = 0; i != strs.length; i++){if(strs[i].equals("("))mascot.push(strs[i]);else if(strs[i].equals(")")){String temp = mascot.pop();while(!temp.equals("(")){exp = exp + " " + temp;temp = mascot.pop();}}else if(strs[i].equals("+") || strs[i].equals("-")||strs[i].equals("/")||strs[i].equals("*")){if(mascot.isEmpty() || mascot.peek().equals("(") || (compare(strs[i], mascot.peek()) >= 0))mascot.push(strs[i]);else{while(!mascot.isEmpty() && compare(strs[i], mascot.peek())<=0 && !mascot.peek().equals("("))exp = exp + " " + mascot.pop();mascot.push(strs[i]);}}elseexp = exp + " " + strs[i];}while(!mascot.isEmpty())exp = exp + " " + mascot.pop();StdOut.println(exp);}}
*******************************************************************************************************
//对后序表达式进行求值
public class EvaluatePostfix {public static void main(String[] args){String[] strs = StdIn.readStrings();ListStack<Double> s = new ListStack<Double>();for(int i = 0; i != strs.length; i++){if(strs[i].equals("+") || strs[i].equals("-") ||strs[i].equals("/")||strs[i].equals("*")){double x1 = s.pop();double x2 = s.pop();switch(strs[i].charAt(0)){case '+':x1 = x1 + x2;break;case '-':x1 = x2 - x1;break;case '*':x1 = x1 * x2;break;case '/':x1 = x2 / x1;break;}s.push(x1);}elses.push(Double.parseDouble(strs[i]));}StdOut.println(s.pop());}}
0 0
- 中序表达式转后序表达式的java实现
- 中序表达式变成后序表达式 JAVA实现版本
- Java-Stack实现中序表达式求值
- 中序表达式转后序表达式
- 算术表达式的Java实现
- Java实现表达式的运算
- 后缀表达式的java实现
- 栈的应用-中序表达式转后序表达式
- Java中正则表达式的实现_代码
- 中序表达式转后序表达式(带括号)
- Java数据结构——中序表达式转后续表达式实现
- Java栈实现括号匹配、中序转后序表达式、中序表达式直接计算
- 算法第四版 用java实现由中序表达式转换为后续表达式
- 中序表达式转后序的代码
- 正则表达式概述与JAVA中正则表达式的应用
- 正则表达式概述与JAVA中正则表达式的应用
- 正则表达式概述与JAVA中正则表达式的应用
- 表达式计算java实现
- 使用CSS实现下拉菜单的动态显示
- STL MAP(key,value)
- c++内存对象模型(非常详细)
- JAVA 上机作业5.4
- JAVA上机——5.4
- 中序表达式转后序表达式的java实现
- 第七周-项目1 - 建立顺序环形队列算法库
- 使用uitableview的索引功能
- js百钱买白鸡的几种方法
- 单例模式
- panda
- NavigationBar 设置半透明
- 第十二周第二天
- VC++ MFC中多线程