栈的特点:
- 先进后出,后进先出。
- 内部使用数组保存数据。
Java代码实现
public class MyStack {
// 底层实现是一个数组
private long[] arr;
// 栈顶项在数组中的位置
private int top;
/**
* 创建默认长度数组的构造方法
*/
public MyStack() {
arr = new long[10];
top = -1;
}
/**
* 创建制定长度的数组的构造方法
*
* @param maxSize
*/
public MyStack(int maxSize) {
arr = new long[maxSize];
top = -1;
}
/**
* 添加指定数据
*
* @param value
*/
public void push(int value) {
arr[++top] = value;
}
/**
* 移除数据,从栈顶移除,同时修改栈顶在数组中的位置
*
* @return
*/
public long pop() {
return arr[top--];
}
/**
* 查看栈顶数据
*
* @return
*/
public long peek() {
return arr[top];
}
/**
* 判断栈是否为空
*
* @return
*/
public boolean isEmpty() {
return top == -1;
}
/**
* 判断栈是否满了
*
* @return
*/
public Boolean isFull() {
return top == arr.length - 1;
}
}