Java 数组实现堆栈操作
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 ; } else return 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()) ; } }