//棧,只允許在棧頂進行插入和刪除操作,棧頂指針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();
}
}
棧(數組實現)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.