1. 栈的定义
- 限定仅在表尾进行插入和删除操作的线性表
- 栈顶(Top):操作数据的一端,即表尾
- 栈底(Bottom):线性表的另一端,即表头
![](https://img-blog.csdnimg.cn/20210203154052248.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzU0NDg1NjA0,size_16,color_FFFFFF,t_70)
2. 栈的特点
LIFO(Last In First Out)
,后进先出
3. 基本操作
- 进栈:push(),在栈顶插入元素,入栈、压栈
- 出栈:pop(),从栈顶删除数据
- 判断空:isEmpty()
2. 栈的实现
package com.study;
public class Stack<E> {
Object[] stack = new Object[10000];
int index = -1;
int size = 0;
public Stack() {
}
public E peek(){
if(index < 0){
return null;
}
return (E) stack[index];
}
public void push(E e){
stack[++index] = e;
size++;
}
public E pop(){
E e = peek();
if(e != null){
stack[index] = null;
index--;
size--;
}
return e;
}
public boolean isEmpty(){
return size == 0;
}
}