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数据结构

原文地址:https://www.cnblogs.com/bee-home/p/7523665.html