栈是一种先进后出的数据结构,写算法的时候经常用到该数据结构,下面简答实现一下栈结构,包含了增删改的方法:
import java.util.ArrayList;
import java.util.List;
public class Stack<T> {
/**
* 代表栈的容器
*/
private List<T> container;
/**
* 容器中元素的数量
*/
private int size;
public Stack() {
container = new ArrayList<T>();
size = 0;
}
/**
* 获取栈顶元素
* @return 栈顶元素
*/
public T top() {
if(isEmpty()) {
return null;
}
return container.get(size-1);
}
/**
* 将数据压入栈中
* @param data
*/
public void push(T data) {
container.add(data);
size++;
}
/**
* 弹出栈顶元素
* @return 被弹出的元素
*/
public T pop() {
if(isEmpty()) {
return null;
}
T data = container.get(size-1);
size--;
return data;
}
/**
* 获取栈中元素的数量
* @return 栈的元素的数量
*/
public int size() {
return size;
}
/**
* 返回栈是否为空
* @return 空返回true,非空返回false
*/
public boolean isEmpty() {
return size == 0;
}
}