目录
1.栈
1.1栈的概念
栈是一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈 顶,另一端称为栈底。栈中的数据元素遵守先进后出。
2.栈的实现
2.1顺序表实现栈
顺序表底层是个数组
public class MyStack {
public int[] elem;
public int usedSize;
public MyStack(){
this.elem = new int[5];
}
/*
入栈
*/
public void push(int val){
if(isFull()){
//空间如果满了,要扩容,默认2倍扩容
this.elem = Arrays.copyOf(this.elem,2*this.elem.length);
}
this.elem[this.usedSize] = val;
usedSize++;
}
/*
出栈,后入先出
*/
public int pop(){
if(isEmpty()){
throw new UnsupportedOperationExc