以将数组添加到栈中为例,演示栈弹出数据,访问栈顶元素、判断栈是否为空、判断栈是否满了
public class MyStack {
// 定义数组的最大长度
private int maxsize;
// 定义一个数组
private long[] arr;
// 定义栈顶
private int top;
// 构造方法
public MyStack(int size) {
maxsize = size;
arr = new long[maxsize];
top = -1;
}
/*
* 添加数据(压入数据)
*/
public void push(long value) {
arr[++top] = value;
}
/*
* 移除数据(弹出数据)
*/
public long pop() {
return arr[top--];
}
/*
* 访问栈顶元素
*/
public long peek() {
return arr[top];
}
/*
* 判断栈是否为空
*/
public boolean isEmoty() {
return top == -1;
}
/*
* 判断栈是否满了
*/
public boolean isFull() {
return top == maxsize - 1;
}
}
写一个测试类
public class TestMyStack {
public static void main(String[] args) {
MyStack myStack = new MyStack(10);
// 压入数据
myStack.push(22);
myStack.push(11);
myStack.push(77);
myStack.push(88);
myStack.push(33);
myStack.push(44);
// 访问栈顶元素
System.out.println(myStack.peek());
// 判断栈是否为空
System.out.println("栈是否为空" + myStack.isEmoty());
// 判断栈是否满了
System.out.println("栈是否满了" + myStack.isFull());
// 弹出数据
while (!myStack.isEmoty()) {
System.out.print(myStack.pop() + " ");
}
}
}
运行结构