棧是一種抽象資料類型,是程式員的工具。
棧的特點:先入後出
push操作示意圖:
(圖是從浙大的資料結構慕課視頻上截得)
pop:
代碼:
/* * 使用數組實現棧 * * 棧的特點:先入後出 * * 2017年11月29日20:08:56 * */public class ArrayStack{private int [] arr ;private int maxSize ;//指定數組長度private int Top ;//棧頂(索引)//初始化棧public ArrayStack ( int maxSize ){this.maxSize = maxSize ;arr = new int [maxSize];Top = -1 ;//代表當前棧中沒有元素}//入棧public void push ( int data ){//棧滿了就提示並直接返回if ( isFull () ){System.out.println ( "Sorry , 棧滿了" );return ;}arr [++Top] = data ;//入棧}//出棧public int pop (){// = -1 說明棧是空的if ( isEmpty () ){System.out.println ( "當前棧中沒有元素。" );return 0;}int temp = arr [Top--] ; //取出棧頂元素後索引-1return temp ;//返回棧頂元素}//判斷是否滿棧public boolean isFull (){return Top == maxSize - 1;//maxSize指的是數組長度,-1後表示實際索引範圍}//判斷棧是否為空白public boolean isEmpty (){return Top == -1 ;}//遍曆public void display (){if ( isEmpty () ){System.out.println ( "棧是空的" );return ;}//遍曆順序: 從頂到底System.out.println ( "Top -> bottom" );for ( int i = Top ; i >= 0 ; i -- ){System.out.print ( arr [i] + " " );}System.out.println ();}}