数据结构之栈的简单实现

83 阅读1分钟

栈是一种先进后出的数据结构,写算法的时候经常用到该数据结构,下面简答实现一下栈结构,包含了增删改的方法:

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;
	}
}