栈
栈:一种特殊的线性表,只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一段称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出的原则。
压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。
出栈:栈的删除操作叫出栈,出数据在栈顶。
栈实现
1、利用顺序表实现,即使用尾插+尾删的方式实现。
2、利用链表实现,则头尾皆可以。
public class MyStack {
//先不考虑扩容问题
//使用一个数组来表示栈
private int [] array=new int [100];
private int size=0;
//1.入栈
public void push(int v){
//array[size++]=v;
array[size]=v;
size++;
}
//2.出栈,返回的是出栈的这个元素的值
public Integer pop(){
if(size==0){
return null;
}
//return array[--size];
int ret=array[size-1];
size--;
return ret;
}
//3.取栈顶元素
public Integer peek(){
if(size==0){
return null;
}
return array[size-1];
}
//4.判断栈是否为空
public boolean isEmpty(){
return size==0;
}
//5.获取栈的大小
public int size(){
return size;
}
}