一、栈
1.栈的定义
栈:先进后出的数据结构,先进去的数据在底部,最后取出,后进去的数据在顶部,最先被取出。其存放和取出数据的顺序,如下图所示:
2.栈的常用操作
首先抽象出栈中通用的方法:
public interface Stack<E> {
//获取栈中元素的个数
int getSize();
//判断栈是否为空
boolean isEmpty();
//向栈顶放入元素e
void push(E e);
//从栈顶取出最上面的元素e
E pop();
//查询栈顶最上面的元素e,但不移除
E peek();
}
3.栈的实现
- 底层通过数组来实现:手动封装的数组
具体实现代码如下:
```java
/**
* @auther jintao.zhang
* @date 2019-12-17 11:31
*/
public class ArrayStack<E> implements Stack<E> {
Array<E> array;
public ArrayStack(int capacity){
array = new Array<>(capacity);
}
public ArrayStack(){
array = new Array<>();
}
@Override
public int getSize() {
return array.getSize();
}
@Override
public boolean isEmpty() {
return array.isEmpty();
}
public int getCa