先入的后出

 

 

public class stack {
public static void main(String[] args) {
stack s=new stack(4);
s.push(1);
s.list();
// String key="";
// boolean loop=true;
// Scanner scanner=new Scanner(System.in);
// while(loop){
//
}
int maxsize;
int[] stack;
int top=-1;//指向栈顶,初始化为-1
public stack(int maxsize){
this.maxsize=maxsize;
stack=new int[this.maxsize];

}
public boolean isFull(){
return top==maxsize-1;
}
public boolean isEmpty(){
return top==-1;
}
public void push(int value){
if(isFull()){
System.out.println("full");
}
top++;
stack[top]=value;

}
public int pop(){
if(isEmpty()){
System.out.println("null");
throw new RuntimeException();
}
int value=stack[top];
top--;
return value;
}
public void list(){
if(isEmpty()){
System.out.println("null");
}
for(int i=top;i>=0;i--){
System.out.println(stack[i]);
}
}

}