首页 > 编程语言 > 详细

Java的数据结构

时间:2017-09-15 01:31:38      阅读:243      评论:0      收藏:0      [点我收藏+]

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

原文:http://www.cnblogs.com/bee-home/p/7523665.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!