Loading...

【ACM模式】栈的操作

在这里插入图片描述

求解代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
public static void main(String[] args)throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StreamTokenizer in = new StreamTokenizer(br);
        PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));

        Deque<Integer> stack = new ArrayDeque<>();
        in.nextToken();
        int n = (int)in.nval;
        for(int i=0;i<n;i++){
            in.nextToken();
            String str = (String)in.sval;
            switch (str) {
                case "push":
                    in.nextToken();
                    stack.push((int)in.nval);
                    break;
                case "pop":
                    if(stack.isEmpty()){
                        out.println("Empty");
                    }else{
                        stack.pop();
                    }
                    break;
                case "query":
                    if(stack.isEmpty()){
                        out.println("Empty");
                    }else{
                        out.println(stack.peek());
                    }
                    break;
                case "size":
                    out.println(stack.size());
                    break;                                                     
                default:
                    break;
            }
        }
        out.flush();
        out.close();
    }

小贴士

官方文档明确标注:

Deque接口及其实现类(如ArrayDeque)应优先于Stack类使用。

Code Road Record