Dijkstra的双栈算术表达式求值算法
来源:互联网 发布:淘宝客鹊桥怎么开通 编辑:程序博客网 时间:2024/05/21 10:26
import java.util.Scanner;import java.util.Stack;public class Evaluate {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);String evaluate = scanner.nextLine();char a[] = evaluate.toCharArray();//将字符串转化为字符数组Stack<String> opsStack= new Stack<String>();Stack<Double> valStack = new Stack<Double>();int i = 0;while(i<a.length){String string = String.valueOf(a[i]);if(string.equals("("));else if(string.equals("+")) opsStack.push(string);else if(string.equals("-")) opsStack.push(string);else if(string.equals("*")) opsStack.push(string);else if(string.equals("/")) opsStack.push(string);else if(string.equals(")")){String oString = opsStack.pop();double v = valStack.pop();if(oString.equals("+")) v = v+valStack.pop();if(oString.equals("-")) v = v-valStack.pop();if(oString.equals("*")) v = v*valStack.pop();if(oString.equals("/")) v = v/valStack.pop();valStack.push(v);}else {valStack.push(Double.parseDouble(string));}i++;}System.out.println(valStack.pop());}}
阅读全文
0 0
- Dijkstra双栈算术表达式求值算法
- Dijkstra双栈算术表达式求值算法
- Dijkstra的双栈算术表达式的求值算法
- Dijkstra的双栈算术表达式求值算法
- Dijkstra的双栈算术表达式求值算法
- Dijkstra的双栈算术表达式求值算法
- Dijkstra的双栈算术表达式求值算法
- Dijkstra的双栈算术表达式(未省略括号)求值算法(algs4)
- 算术表达式求值(Dijkstra)
- 算法 -- 双栈算术表达式求值算法
- 双栈算术表达式求值算法
- 双栈算术表达式求值算法
- Dijkstra的双栈算法表达式求值算法
- Dijkstra的双栈算数表达式求值算法
- 栈的算术表达式求值
- 双栈算术表达式求值
- 经典算法-算术表达式求值
- 经典算法-算术表达式求值
- NOIP2017 游记
- lua 的for循环
- 开始
- 用Python做Opengl的编程
- 11.12周日
- Dijkstra的双栈算术表达式求值算法
- [小程序开发] 微信小程序内嵌网页web-view开发教程
- 大学毕业后参加工作的这段日子过得简单的像泡面一样
- Fiddler抓取手机上的网络数据包
- DOM(文档对象模型)学习笔记(二)
- ssdh
- ubuntu 下 MySQL 基本操作
- JUnit4框架代码解析
- 【Lucene】Lucene和Oracle数据库的对比