class Stack {private int stck[] ; private int tos ; Stack(int size) { // 一个参数的构造参数stck = new int[size] ; // 创建数组(创建堆栈)tos = -1 ; // 空堆栈标识 -1 }// 堆栈操作的特性:先进后出、后进先出void push(int item) { // 入栈if (tos==stck.length-1) // 定义栈顶位置,元素达到栈顶则无法进栈System.out.println("Stack is full.") ; else stck[++tos] = item ; // 元素存入(数组)堆栈,栈顶(自加) }int pop() { // 出栈if(tos<0) { // 栈内容为空,则不再执行出栈操作System.out.println("Stack underflow.") ; return 0 ; }elsereturn stck[tos--] ; // 元素出栈,栈位置自减 } } class TestStack2 {public static void main(String args[]) {Stack mystack1 = new Stack(5) ; // 堆栈1 5个元素 >>> Stack对象Stack mystack2 = new Stack(8) ; // 堆栈2 8个元素 >>> Stack对象 // push入栈操作for( int i = 0 ; i<5 ; i ++) mystack1.push(i) ; for( int i = 0 ; i<8 ; i ++)mystack2.push(i) ; // pop出栈操作(读取堆栈操作)System.out.println("Stack in mystack1:") ; for( int i = 0 ; i<5 ; i ++)System.out.println(mystack1.pop()) ; System.out.println("Stack in mystack2:") ; for( int i = 0 ; i<8 ; i ++)System.out.println(mystack2.pop()) ; } }