棧(數組實現)

//棧,只允許在棧頂進行插入和刪除操作,棧頂指針top:棧爲空top=-1; 棧底top=0;
//首先初始化棧,包括棧頂指針置-1,指定棧大小

import java.util.*;
import java.io.*;
class TestStack{
		private int[] data;//
		private int top;//棧頂指針
/*初始化棧,棧頂指針置-1,棧大小*/
		void InitStack(int max){//<u> <i>開始未初始化棧,結果在入棧時總是提示19行處空指針異常</div></i></u>

				this.data=new int[max];// 爲啥用構造器中行??總是提示無法將類中的構造器應用到給定類型
				this.top=-1;
		}
		TestStack(){
				//空構造器
		}
/*入棧操作,需判斷棧是否滿,棧滿返回false, 否則向棧中添加元素*/
		boolean Push(int data){
			if(this.top==this.data.length-1){
				return false;//棧已滿
			}	
			else {
			 	this.top=this.top+1;
				this.data[this.top]=data;
				return true;
			}
		}
/*出棧操作,需判斷棧是否空*/
		void Pop(){
			int top=this.top;
			while (top!=-1) {
				System.out.println(this.data[top]);//棧頂元素出棧後,棧頂指針向下偏移
				top=top-1;
			}
		}
		
		public static void main(String[] args){

			TestStack	s1=new TestStack();
			s1.InitStack(10);
			for (int i=0; i<s1.data.length; i++) {
			 	s1.Push(i);
			}
			s1.Pop();
			
		}
		
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章