标签:color main while stack auth 数据集 删除元素 [] 表达式
1.背包
PS:不支持删除元素的数据集合;他的目的就是帮组收集元素和遍历元素。
2.迪杰斯特拉双栈算数表达式
import java.util.*; /** * 每个式子必须加上括号,效果不好 * (2+6*(2+2)) * @author bee * */ public class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); while(sc.hasNext()){ Stack<String> ops = new Stack<>(); Stack<Double> vals = new Stack<>(); String str = sc.nextLine(); for(int i=0;i<str.length();i++){ String s = str.charAt(i)+""; if(s.equals("(")){ }else if(s.equals("+")){ ops.push(s); }else if(s.equals("-")){ ops.push(s); }else if(s.equals("*")){ ops.push(s); }else if(s.equals("/")){ ops.push(s); }else if(s.equals(")")){//弹出运算符和操作数,计算结果压入栈 String op = ops.pop(); Double v = vals.pop(); if(op.equals("+")){ v = vals.pop()+v; }else if(op.equals("-")){ v = vals.pop()-v; }else if(op.equals("*")){ v = vals.pop()*v; }else if(op.equals("/")){ v = vals.pop()/v; } vals.push(v); }else{//非运算符和非括号,直接double压入栈中 vals.push(Double.parseDouble(s)); } } System.out.println(vals.pop()); } sc.close(); } }
3.java数据结构
标签:color main while stack auth 数据集 删除元素 [] 表达式
原文地址:http://www.cnblogs.com/bee-home/p/7523665.html