栈是一种特殊的线性表,只允许在固定的一端进行插入和删除操作.
从上述定义中,可以得出栈中元素有先进后出的特点.
学习栈这种结构并掌握其基本操作是十分必要的,在日后的学习和工作中都有其广泛的应用.
今天为大家带来顺序栈基本操作的实现.
其中入栈,出栈,判断栈空,判断栈满最为重要.
import java.util.Arrays;
public class MyStack {
private int[] elem;
private int usedSize;
private final static int defaultSize=10;
MyStack(){
elem=new int[defaultSize];
}
//入栈
public void push(int val){
if(isFull()){
elem= Arrays.copyOf(elem,2*elem.length);
}
elem[usedSize++]=val;
}
//判断栈满
public boolean isFull(){
if(usedSize==elem.length){
return true;
}
return false;
}
//判断栈空
public boolean isEmpty(){
if(usedSize==0){
return true;
}
return false;
}
//出栈
public int pop(){
if(!isEmpty()){
int temp=elem[usedSize-1];
usedSize--;
return temp;
}
throw new RuntimeException("栈为空");
}
//获取栈顶元素
public int peek(){
return elem[usedSize-1];
}
}
发现有任何错误,欢迎向博主反馈