栈的构建与应用
public class MyStack {
//底层实现是一个数组,栈遵循先进后出,后进先出
private long[] arr;
private int top;
/*
* 默认的构造方法
*
* */
public MyStack(){
arr=new long[10];
top=-1;
}
/*
* 带参数构造方法,参数为数组初始化大小
* */
public MyStack(int maxsize){
arr=new long[maxsize];
top=-1;
}
/*
* 添加数据,压入
* */
public void push(int value){
arr[++top]=value;
}
/*
* 移除数据,弹出
* */
public long pop(){
return arr[top--];
}
/*
* 查看数据
* */
public long peak(){
return arr[top];
}
/*
* 判断是否为空
* */
public boolean isEmpty(){
return top==-1;
}
/*
* 判断是否为满了
* */
public boolean isFull(){
return top==arr.length-1;
}
}
public class TestMyStack {
public static void main(String[] args){
MyStack ms=new MyStack(4);
ms.push(23);
ms.push(12);
ms.push(1);
ms.push(90);
System.out.println(ms.isEmpty());
System.out.println(ms.isFull());
System.out.println(ms.peak());
while(!ms.isEmpty()){
System.out.print(ms.pop()+",");
}
//弹出数据后,栈为空
System.out.println(ms.isEmpty());
System.out.println(ms.isFull());
}
}