class double_stack{ //两个栈的长度 private int length; private int top1,top2; private int[] arr; public double_stack(int length){ this.length=length; arr=new int[length]; top1=-1; top2=length; } //定义两个栈的push和pop public boolean push1(int a){ if(top1+1==top2){ return false; }else { arr[++top1]=a; return true; } } public boolean push2(int a){ if(top2-1==top1){ return false; }else { arr[--top2]=a; return true; } } public boolean pop1(){ if(top1==-1){ return false; }else { top1--; return true; } } public boolean pop2(){ if(top2==length){ return false; }else { top2++; return true; } } public void print_stack1(){ if(top1==-1){ System.out.println("stack1 is empty!!!"); }else { for(int i=0;i<=top1;i++){ System.out.print(arr[i]+" "); } System.out.println(); } } public void print_stack2(){ if(top2==length){ System.out.println("stack1 is empty!!!"); }else { for(int i=length-1;i>=top2;i--){ System.out.print(arr[i]+" "); } System.out.println(); } } }
java:用一个数组实现两个栈
最新推荐文章于 2022-07-16 17:33:10 发布