1. 程式人生 > >棧的java實現(基於自定義的連結串列)

棧的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);
	}
}

執行結果