?
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()) ; } }
?