Java的数据结构
Posted biyangqiang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java的数据结构相关的知识,希望对你有一定的参考价值。
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数据结构
以上是关于Java的数据结构的主要内容,如果未能解决你的问题,请参考以下文章