//栈,只允许在栈顶进行插入和删除操作,栈顶指针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();
}
}
栈(数组实现)
最新推荐文章于 2019-05-16 20:37:25 发布