栈是一种后进先出的数据结构,每次弹出只能弹出栈顶元素。
/**
* @author lyq
* @create 5/1/19
*/
public class MyStack {
/**
* 栈的大小
*/
private int size;
/**
* 栈顶指针
*/
private int top;
/**
* 存放数据的数组
*/
private int[] data;
public MyStack(int size) {
this.size = size;
data = new int[size];
top = -1;
}
/**
* 插入元素
*/
public void push(int n) {
if (isFull()) {
System.out.println("栈已满");
return;
}
data[++top] = n;
}
/**
* 弹出栈顶元素
*/
public int pop(){
if (isEmpty()) {
System.out.println("栈为空");
return -1;
}
return data[top--];
}
/**
* 返回栈顶元素
*/
public int peek(){
if (isEmpty()) {
System.out.println("栈为空");
return -1;
}
return data[top];
}
/**
* 是否已满
*/
public boolean isFull(){
return top == size-1;
}
/**
* 是否为空
*/
public boolean isEmpty(){
return top == -1;
}
}