public class ArrayStack{
private long[] a;
private int size;//指定栈大小
private int top;//栈顶
//初始化指定栈大小
public ArrayStack(int maxSize){
this.size = maxSize;
this.a = new long[size];
this.top = -1;//代表空栈
}
//初始化不指定大小默认为1
public ArrayStack(){
this.size = 1;
this.a = new long[size];
this.top = -1;
}
//入栈
public void push(long value){
//判断栈是否满了
if(isFull()){
System.out.print("栈已满");
return;
}
a[++top] = value;
}
//查出栈顶数据,不删除
public long peek(){
//判断栈中是否有数据
if(isEmpty()){
System.out.print("栈中没有数据");
return 0;
}
return a[top];
}
//查出栈顶数据, 并且删除
public void pop(){
//判断栈中是否有数据
if(isEmpty()){
System.out.print("栈中没有数据");
return 0;
}
return a[top--];
}
//查出栈的大小
public long size(){
return top+1;
}
public boolean isEmpty(){
return (top == -1);
}
public boolean isFull(){
return (top == size-1);
}
public static void main(String[] args) {
ArrayStack stack = new ArrayStack();
System.out.println(stack.size());
stack.push(1);
System.out.println(stack.peek());
stack.push(2);
}
复制代码
}