習題 寫一個MyStack類,表示“棧”這種數據結構。

               寫一個MyStack類,表示“棧”這種數據結構。

               棧在表示上,就如同一個單向開口的盒子,每當有新數據進入時,都是進入棧頂。其基本操作爲push和pop。push表示把一個元素加入棧頂,pop表示把棧頂元素彈出。如圖:

                                         

               棧的基本操作:

                              push(Object o):表示把元素放入棧

                              Object pop():返回棧頂元素,並把該元素從棧中刪除。如果棧爲空,則返回null值。

                              Object peek():返回棧頂的元素,但不把該元素刪除。如果棧爲空,則返回null值。

                              boolean isEmpty():判斷該棧是否爲空。

                              int size():返回該棧中元素的數量。

               要求:利用List,實現棧。

class MyStack2 {

	List<Object> list = new LinkedList<>();

	// 表示把元素放入棧
	void push(Object o) {
		list.add(o);
	}

	// 返回棧頂元素,並把該元素從棧中刪除。如果棧爲空,則返回null值。
	Object pop() {
		if (list.isEmpty()) {
			return null;
		}
		Object count = list.get(list.size() - 1);
		list.remove(list.size() - 1);

		return count;
	}

	// 返回棧頂的元素,但不把該元素刪除。如果棧爲空,則返回null值。
	Object peek() {
		if (list.isEmpty()) {
			return null;
		}
		return list.get(list.size() - 1);
	}

	// 判斷該棧是否爲空。
	boolean isEmpty() {
		if (list.isEmpty()) {
			return true;
		}
		return false;
	}

	// 返回該棧中元素的數量。
	int size() {
		return list.size();
	}

}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章