栈简单来说就是一种只允许在一端进行插入和删除操作的线性表,这一端我们通常称作栈顶,而另一端称作栈底。插入和删除也被称为入栈和出栈。栈的结构图如下所示。
栈的特性:
在队尾插入元素,在队首删除元素。
FILO(先进后出)
栈的简单实现
使用上一篇文章的动态数组实现了栈,代码非常简单,不多讲了。
public class ArrayStack<E>{
private Array<E> data;
public ArrayStack(){
this.data = new DynamicArray<>();
}
public boolean isEmpty() {
return data.isEmpty();
}
public int size(){
return data.size();
}
public void push(E e) {
data.add(e);
}
public E pop() {
return data.remove(data.size() - 1);
}
public E peek() {
return data.get(data.size() - 1);
}
@Override
public String toString() {
return "Base " + data + " Top";
}