介绍:
栈是一种线性数据结构,相比数组,栈对应的操作是数组的子集
特点:
栈只能从一端添加元素,称之为入栈,也只能从一端取出元素,称之为出栈,具有后进先出的特点 ,Last In First Out (LIFO)
应用:
撤销操作 、 程序调用的系统栈 ,程序执行的方法栈 and so on ...
栈的实现(数组)
public interface Stack<E> {
/**
* 将元素压入栈中
* @param e
*/
void push(E e);
/**
* 将元素弹出栈中
* @return
*/
E pop();
/**
* 看一眼最后一个元素
* @return
*/
E peek();
/**
* 栈中有多少个元素
* @return
*/
int getSize();
/**
* 栈是否为空
* @return
*/
boolean isEmpty();
}
public class ArrayStack<E> implements Stack<E>{
private Array<E> array = new Array<>(10);
@Override
public void push(E e) {
array.addLast(e);
}
@Override
public E pop() {
return array.removeLast();
}
@Override
public E peek() {
return array.get(array.getSize() -1);
}
@Override
public int getSize() {
return array.getSize();
}
@Override
public boolean isEmpty() {
return array.isEmpty();
}
}