栈的java实现(基于自定义的链表)

 自定义的链表代码在我的博客《单链表的JAVA实现(基于虚拟头节点实现了添加,更新,查找,删除元素)》

public interface Stack<E> {
	int getSize();

	boolean isEmpty();

	void push(E e);

	E pop();

	E peek();
}
public class LinkedListStack<E> implements Stack<E> {

	private LinkedList<E> list;

	public LinkedListStack() {
		list = new LinkedList<>();
	}

	@Override
	public int getSize() {
		return list.getSize();
	}

	@Override
	public boolean isEmpty() {
		return list.isEmpty();
	}

	@Override
	public void push(E e) {
		list.addFirst(e);
	}

	@Override
	public E pop() {
		return list.removeFirst();
	}

	@Override
	public E peek() {
		return list.getFirst();
	}

	@Override
	public String toString() {
		StringBuilder res = new StringBuilder();
		res.append("Stack: top ");
		res.append(list);
		return res.toString();
	}

}

测试代码

public class Test {
	public static void main(String[] args) {

		LinkedListStack<Integer> stack = new LinkedListStack<>();

		for (int i = 0; i < 5; i++) {
			stack.push(i);
			System.out.println(stack);
		}

		stack.pop();
		System.out.println(stack);
	}
}

运行结果

猜你喜欢

转载自blog.csdn.net/qq_26891141/article/details/85230032
今日推荐