Java实现栈
1.栈的定义
:栈(Stack)又名堆栈,是允许在同一端进行插入和删除操作的特殊线性表。其中,允许进行插入和删除操作的一段交租栈顶(Top),另一端叫作栈顶(Bottom),栈顶固定,栈顶浮动。栈中的元素个数为零时,该栈叫作空栈。插入一般交租进栈(Push),删除叫作退栈(Pop)。栈也叫作后进先出的线性表。具体数据结构如下:
2.Java实现栈
栈的数据结构如下:

要实现一个栈,需先实现一下核心方法:
- push() :向栈中压入一个数据,先入栈的数据在最下面
- pop() :弹出栈顶数据,即移除栈顶数据
- peek() :返回当前的栈顶数据
定义栈的数据结构
public class Stack<E> {
private Object[] data=null;
private int maxSize=0;//栈的容量
private int top=-1;//栈顶指针
//构造函数:根据指定的size初始化栈
Stack(){
this(10);
}
Stack(int initialSize){
if (initialSize>=0){
this.maxSize=initialSize;
data=new Object[initialSize];
top=-1;
}else {
throw new RuntimeException("初始化大小不能小于0"+initialSize);
}
}
定义栈push方法
public boolean push(E e){
if (top==maxSize-1){
throw new RuntimeException("栈已满,无法继续将元素入栈!");
}else {
data[++top]=e;
return true;
}
}
定义栈pop方法
public E pop(){
if (top==-1){
throw new RuntimeException("栈为空!");
}else {
return (E)data[top--];
}
}
定义栈peek方法
public E peek(){
if (top==-1){
throw new RuntimeException("栈为空!");
}else {
return (E)data[top];
}
}

浙公网安备 33010602011771号