本教程的内容基本来自于《Java数据结构与算法》
栈是一种先进后出的数据结构,如下图。
第一个压入的元素总是在栈底,最后压入的元素总是在栈顶,结构就像盒子装东西一样。压入元素称为入栈,取出元素称为出栈。
使用数组来实现一个栈,只需使用一个指向栈顶的指针即可。
1.初始化栈
class Stack{
private int maxSize; //栈的最大存储
private int[] arr; //内部数组
private int top; //栈顶指针
public Stack(int maxSize){
this.maxSize = maxSize;
arr = new int[maxSize];
top = -1;
}
}
2.栈是否为空
public boolean isEmpty(){ //判断栈是否为空
return top==-1;
}
3.栈是否满了
public boolean isFull(){ //判断栈是否满了
return top==maxSize-1;
}
4.入栈
public boolean push(int key){ //入栈
//判断栈是否满了
if (isFull())
return false;
arr[++top] = key; //每压入一个元素,top指针加1
return true;
}
5.出栈
public int pop(){ //出栈
return arr[top--]; //返回栈顶元素,top指针减1
}
6.查看栈顶元素
public int peek() { //查看栈顶元素
return arr[top];
}
github完整代码:
https://github.com/gamersover/data_structure_java/blob/master/Stack/StackApp.java