栈队列例题2:SetOfStack放盘子

 

代码如下:

  

 1 import java.util.ArrayList;
 2 import java.util.Scanner;
 3 
 4 public class SetOfStack {
 5 
 6     public static void main(String[] args) {
 7         Scanner sc=new Scanner(System.in);
 8         //存储放盘子和拿盘子的操作
 9         int opr[][]=new int[4][2];
10         for(int i=0;i<opr.length;i++)
11         {
12             for(int j=0;j<opr[i].length;j++)
13             {
14                 opr[i][j]=sc.nextInt();
15             }
16         }
17         
18         
19         ArrayList<ArrayList<Integer>> oprate=SetOfStacks(opr,2);
20         //剩余盘子的输出
21         for(ArrayList<Integer> one : oprate)
22         {
23             for(int value : one)
24             {
25                 System.out.print(value+"  ");
26             }
27         }
28         
29     }
30     
31     public static ArrayList<ArrayList<Integer>> SetOfStacks(int opr[][],int size){
32         
33         ArrayList<ArrayList<Integer>> Boss=new ArrayList<ArrayList<Integer>>();  //存储有多少摞盘子
34         ArrayList<Integer> List=new ArrayList<Integer>();  //一摞盘子
35         Boss.add(List);
36         for(int oprAndValue[] : opr)
37         {
38             int oprValue=oprAndValue[0];
39             int oprAdd=oprAndValue[1];
40             
41             if(oprValue==1)
42             {
43                 if(List.size()==size) {
44                     List=new ArrayList<Integer>(); 
45                     Boss.add(List);
46                     List.add(oprAdd);
47                 }
48                 else 
49                 {
50                     List.add(oprAdd);
51                 }
52             }
53             else
54             {
55                 if(List.size()==0)
56                 {
57                     Boss.remove(Boss.size()-1);
58                     List=Boss.get(Boss.size()-1);
59                 }
60                 else 
61                 {
62                     List.remove(List.size()-1);
63                 }
64             }
65             
66         }
67         return Boss;
68     }
69 
70 }

 

转载于:https://www.cnblogs.com/LgxBoKeYuan/p/10219700.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值